]> git.ipfire.org Git - thirdparty/kernel/stable-queue.git/commitdiff
3.18-stable patches
authorGreg Kroah-Hartman <gregkh@linuxfoundation.org>
Sun, 25 Jan 2015 17:46:04 +0000 (09:46 -0800)
committerGreg Kroah-Hartman <gregkh@linuxfoundation.org>
Sun, 25 Jan 2015 17:46:04 +0000 (09:46 -0800)
added patches:
drm-i915-kill-check_power_well-calls.patch
kvm-nvmx-disable-unrestricted-mode-if-ept-0.patch

queue-3.18/drm-i915-kill-check_power_well-calls.patch [new file with mode: 0644]
queue-3.18/kvm-nvmx-disable-unrestricted-mode-if-ept-0.patch [new file with mode: 0644]
queue-3.18/series

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 (file)
index 0000000..8d21763
--- /dev/null
@@ -0,0 +1,97 @@
+From 7f1241ed1a06b4846ad7a2a57eb088b757e58e16 Mon Sep 17 00:00:00 2001
+From: Ville Syrjälä <ville.syrjala@linux.intel.com>
+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ä <ville.syrjala@linux.intel.com>
+
+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ä <ville.syrjala@linux.intel.com>
+ 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 <eich@suse.de>
+Bugzilla: https://bugs.freedesktop.org/show_bug.cgi?id=86201
+Tested-by: Wendy Wang <wendy.wang@intel.com>
+Signed-off-by: Ville Syrjälä <ville.syrjala@linux.intel.com>
+[Jani: s/intel_runtime_pm.c/intel_pm.c/g and wiggle for 3.18]
+Signed-off-by: Jani Nikula <jani.nikula@intel.com>
+Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
+---
+ 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 (file)
index 0000000..c6de06f
--- /dev/null
@@ -0,0 +1,39 @@
+From 78051e3b7e35722ad3f31dd611f1b34770bddab8 Mon Sep 17 00:00:00 2001
+From: Bandan Das <bsd@redhat.com>
+Date: Sat, 6 Dec 2014 20:32:16 +0530
+Subject: KVM: nVMX: Disable unrestricted mode if ept=0
+
+From: Bandan Das <bsd@redhat.com>
+
+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 <jan.kiszka@siemens.com>
+Signed-off-by: Bandan Das <bsd@redhat.com>
+Signed-off-by: Paolo Bonzini <pbonzini@redhat.com>
+Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
+
+---
+ 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;
index 6289e3c1ce6c3d38ae22cda21a9fac42eb289674..6329882ea31978598f7f1ddf5e96af24b3075ed7 100644 (file)
@@ -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