From: Greg Kroah-Hartman Date: Sun, 25 Jan 2015 17:46:04 +0000 (-0800) Subject: 3.18-stable patches X-Git-Tag: v3.10.66~9 X-Git-Url: http://git.ipfire.org/?a=commitdiff_plain;h=fcbf8afdb3c84ae647daae045b9b1f420302d9b0;p=thirdparty%2Fkernel%2Fstable-queue.git 3.18-stable patches added patches: drm-i915-kill-check_power_well-calls.patch kvm-nvmx-disable-unrestricted-mode-if-ept-0.patch --- diff --git a/queue-3.18/drm-i915-kill-check_power_well-calls.patch b/queue-3.18/drm-i915-kill-check_power_well-calls.patch new file mode 100644 index 00000000000..8d217634ff1 --- /dev/null +++ b/queue-3.18/drm-i915-kill-check_power_well-calls.patch @@ -0,0 +1,97 @@ +From 7f1241ed1a06b4846ad7a2a57eb088b757e58e16 Mon Sep 17 00:00:00 2001 +From: Ville Syrjälä +Date: Thu, 18 Dec 2014 11:44:06 +0200 +Subject: drm/i915: Kill check_power_well() calls +MIME-Version: 1.0 +Content-Type: text/plain; charset=UTF-8 +Content-Transfer-Encoding: 8bit + +From: Ville Syrjälä + +commit 7f1241ed1a06b4846ad7a2a57eb088b757e58e16 upstream. + +pps_{lock,unlock}() call intel_display_power_{get,put}() outside +pps_mutes to avoid deadlocks with the power_domain mutex. In theory +during aux transfers we should usually have the relevant power domain +references already held by some higher level code, so this should not +result in much overhead (exception being userspace i2c-dev access). +However thanks to the check_power_well() calls in +intel_display_power_{get/put}() we end up doing a few Punit reads for +each aux transfer. Obviously doing this for each byte transferred via +i2c-over-aux is not a good idea. + +I can't think of a good way to keep check_power_well() while eliminating +the overhead, so let's just remove check_power_well() entirely. + +Fixes a driver init time regression introduced by: + commit 773538e86081d146e0020435d614f4b96996c1f9 + Author: Ville Syrjälä + Date: Thu Sep 4 14:54:56 2014 +0300 + + drm/i915: Reset power sequencer pipe tracking when disp2d is off + +Credit goes to Jani for figuring this out. + +v2: Add the regression note in the commit message. + +Cc: Egbert Eich +Bugzilla: https://bugs.freedesktop.org/show_bug.cgi?id=86201 +Tested-by: Wendy Wang +Signed-off-by: Ville Syrjälä +[Jani: s/intel_runtime_pm.c/intel_pm.c/g and wiggle for 3.18] +Signed-off-by: Jani Nikula +Signed-off-by: Greg Kroah-Hartman +--- + drivers/gpu/drm/i915/intel_pm.c | 27 --------------------------- + 1 file changed, 27 deletions(-) + +--- a/drivers/gpu/drm/i915/intel_pm.c ++++ b/drivers/gpu/drm/i915/intel_pm.c +@@ -6520,29 +6520,6 @@ static void chv_pipe_power_well_disable( + chv_set_pipe_power_well(dev_priv, power_well, false); + } + +-static void check_power_well_state(struct drm_i915_private *dev_priv, +- struct i915_power_well *power_well) +-{ +- bool enabled = power_well->ops->is_enabled(dev_priv, power_well); +- +- if (power_well->always_on || !i915.disable_power_well) { +- if (!enabled) +- goto mismatch; +- +- return; +- } +- +- if (enabled != (power_well->count > 0)) +- goto mismatch; +- +- return; +- +-mismatch: +- WARN(1, "state mismatch for '%s' (always_on %d hw state %d use-count %d disable_power_well %d\n", +- power_well->name, power_well->always_on, enabled, +- power_well->count, i915.disable_power_well); +-} +- + void intel_display_power_get(struct drm_i915_private *dev_priv, + enum intel_display_power_domain domain) + { +@@ -6562,8 +6539,6 @@ void intel_display_power_get(struct drm_ + power_well->ops->enable(dev_priv, power_well); + power_well->hw_enabled = true; + } +- +- check_power_well_state(dev_priv, power_well); + } + + power_domains->domain_use_count[domain]++; +@@ -6593,8 +6568,6 @@ void intel_display_power_put(struct drm_ + power_well->hw_enabled = false; + power_well->ops->disable(dev_priv, power_well); + } +- +- check_power_well_state(dev_priv, power_well); + } + + mutex_unlock(&power_domains->lock); diff --git a/queue-3.18/kvm-nvmx-disable-unrestricted-mode-if-ept-0.patch b/queue-3.18/kvm-nvmx-disable-unrestricted-mode-if-ept-0.patch new file mode 100644 index 00000000000..c6de06fa023 --- /dev/null +++ b/queue-3.18/kvm-nvmx-disable-unrestricted-mode-if-ept-0.patch @@ -0,0 +1,39 @@ +From 78051e3b7e35722ad3f31dd611f1b34770bddab8 Mon Sep 17 00:00:00 2001 +From: Bandan Das +Date: Sat, 6 Dec 2014 20:32:16 +0530 +Subject: KVM: nVMX: Disable unrestricted mode if ept=0 + +From: Bandan Das + +commit 78051e3b7e35722ad3f31dd611f1b34770bddab8 upstream. + +If L0 has disabled EPT, don't advertise unrestricted +mode at all since it depends on EPT to run real mode code. + +Fixes: 92fbc7b195b824e201d9f06f2b93105f72384d65 +Reviewed-by: Jan Kiszka +Signed-off-by: Bandan Das +Signed-off-by: Paolo Bonzini +Signed-off-by: Greg Kroah-Hartman + +--- + arch/x86/kvm/vmx.c | 4 ++-- + 1 file changed, 2 insertions(+), 2 deletions(-) + +--- a/arch/x86/kvm/vmx.c ++++ b/arch/x86/kvm/vmx.c +@@ -2377,12 +2377,12 @@ static __init void nested_vmx_setup_ctls + nested_vmx_secondary_ctls_low = 0; + nested_vmx_secondary_ctls_high &= + SECONDARY_EXEC_VIRTUALIZE_APIC_ACCESSES | +- SECONDARY_EXEC_UNRESTRICTED_GUEST | + SECONDARY_EXEC_WBINVD_EXITING; + + if (enable_ept) { + /* nested EPT: emulate EPT also to L1 */ +- nested_vmx_secondary_ctls_high |= SECONDARY_EXEC_ENABLE_EPT; ++ nested_vmx_secondary_ctls_high |= SECONDARY_EXEC_ENABLE_EPT | ++ SECONDARY_EXEC_UNRESTRICTED_GUEST; + nested_vmx_ept_caps = VMX_EPT_PAGE_WALK_4_BIT | + VMX_EPTP_WB_BIT | VMX_EPT_2MB_PAGE_BIT | + VMX_EPT_INVEPT_BIT; diff --git a/queue-3.18/series b/queue-3.18/series index 6289e3c1ce6..6329882ea31 100644 --- a/queue-3.18/series +++ b/queue-3.18/series @@ -179,3 +179,5 @@ kbuild-fix-removal-of-the-debian-directory.patch lockd-fix-a-race-when-initialising-nlmsvc_timeout.patch target-drop-arbitrary-maximum-i-o-size-limit.patch vhost-scsi-add-missing-virtio-scsi-tcm-attribute.patch +drm-i915-kill-check_power_well-calls.patch +kvm-nvmx-disable-unrestricted-mode-if-ept-0.patch