]> git.ipfire.org Git - thirdparty/kernel/stable-queue.git/commitdiff
3.0-stable patches
authorGreg Kroah-Hartman <gregkh@linuxfoundation.org>
Wed, 7 Mar 2012 19:38:32 +0000 (11:38 -0800)
committerGreg Kroah-Hartman <gregkh@linuxfoundation.org>
Wed, 7 Mar 2012 19:38:32 +0000 (11:38 -0800)
added patches:
drm-i915-gen7-implement-an-l3-caching-workaround.patch
drm-i915-gen7-implement-rczunit-workaround.patch
kprobes-adjust-fix-a-memory-leak-in-function-pre_handler_kretprobe.patch

queue-3.0/drm-i915-gen7-implement-an-l3-caching-workaround.patch [new file with mode: 0644]
queue-3.0/drm-i915-gen7-implement-rczunit-workaround.patch [new file with mode: 0644]
queue-3.0/kprobes-adjust-fix-a-memory-leak-in-function-pre_handler_kretprobe.patch [new file with mode: 0644]
queue-3.0/series

diff --git a/queue-3.0/drm-i915-gen7-implement-an-l3-caching-workaround.patch b/queue-3.0/drm-i915-gen7-implement-an-l3-caching-workaround.patch
new file mode 100644 (file)
index 0000000..3c5bb2f
--- /dev/null
@@ -0,0 +1,56 @@
+From e4e0c058a19c41150d12ad2d3023b3cf09c5de67 Mon Sep 17 00:00:00 2001
+From: Eugeni Dodonov <eugeni.dodonov@intel.com>
+Date: Wed, 8 Feb 2012 12:53:50 -0800
+Subject: drm/i915: gen7: Implement an L3 caching workaround.
+
+From: Eugeni Dodonov <eugeni.dodonov@intel.com>
+
+commit e4e0c058a19c41150d12ad2d3023b3cf09c5de67 upstream.
+
+This adds two cache-related workarounds for Ivy Bridge which can lead to
+3D ring hangs and corruptions.
+
+Bugzilla: https://bugs.freedesktop.org/show_bug.cgi?id=41353
+Bugzilla: https://bugs.freedesktop.org/show_bug.cgi?id=44610
+Tested-by: Eugeni Dodonov <eugeni.dodonov@intel.com>
+Signed-off-by: Eugeni Dodonov <eugeni.dodonov@intel.com>
+Signed-off-by: Kenneth Graunke <kenneth@whitecape.org>
+Signed-off-by: Jesse Barnes <jbarnes@virtuousgeek.org>
+Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
+
+---
+ drivers/gpu/drm/i915/i915_reg.h      |    7 +++++++
+ drivers/gpu/drm/i915/intel_display.c |    6 ++++++
+ 2 files changed, 13 insertions(+)
+
+--- a/drivers/gpu/drm/i915/i915_reg.h
++++ b/drivers/gpu/drm/i915/i915_reg.h
+@@ -2847,6 +2847,13 @@
+ #define  DISP_TILE_SURFACE_SWIZZLING  (1<<13)
+ #define  DISP_FBC_WM_DIS              (1<<15)
++/* GEN7 chicken */
++#define GEN7_L3CNTLREG1                               0xB01C
++#define  GEN7_WA_FOR_GEN7_L3_CONTROL                  0x3C4FFF8C
++
++#define GEN7_L3_CHICKEN_MODE_REGISTER         0xB030
++#define  GEN7_WA_L3_CHICKEN_MODE                              0x20000000
++
+ /* PCH */
+ /* south display engine interrupt */
+--- a/drivers/gpu/drm/i915/intel_display.c
++++ b/drivers/gpu/drm/i915/intel_display.c
+@@ -7464,6 +7464,12 @@ static void ivybridge_init_clock_gating(
+       I915_WRITE(ILK_DSPCLK_GATE, IVB_VRHUNIT_CLK_GATE);
++      /* WaApplyL3ControlAndL3ChickenMode requires those two on Ivy Bridge */
++      I915_WRITE(GEN7_L3CNTLREG1,
++                      GEN7_WA_FOR_GEN7_L3_CONTROL);
++      I915_WRITE(GEN7_L3_CHICKEN_MODE_REGISTER,
++                      GEN7_WA_L3_CHICKEN_MODE);
++
+       for_each_pipe(pipe)
+               I915_WRITE(DSPCNTR(pipe),
+                          I915_READ(DSPCNTR(pipe)) |
diff --git a/queue-3.0/drm-i915-gen7-implement-rczunit-workaround.patch b/queue-3.0/drm-i915-gen7-implement-rczunit-workaround.patch
new file mode 100644 (file)
index 0000000..cff2911
--- /dev/null
@@ -0,0 +1,49 @@
+From eae66b50c760233fad526edf4a0d327be17a055d Mon Sep 17 00:00:00 2001
+From: Eugeni Dodonov <eugeni.dodonov@intel.com>
+Date: Wed, 8 Feb 2012 12:53:49 -0800
+Subject: drm/i915: gen7: implement rczunit workaround
+
+From: Eugeni Dodonov <eugeni.dodonov@intel.com>
+
+commit eae66b50c760233fad526edf4a0d327be17a055d upstream.
+
+This is yet another workaround related to clock gating which we need on
+Ivy Bridge.
+
+Bugzilla: https://bugs.freedesktop.org/show_bug.cgi?id=41353
+Bugzilla: https://bugs.freedesktop.org/show_bug.cgi?id=44610
+Tested-by: Eugeni Dodonov <eugeni.dodonov@intel.com>
+Signed-off-by: Eugeni Dodonov <eugeni.dodonov@intel.com>
+Signed-off-by: Kenneth Graunke <kenneth@whitecape.org>
+Signed-off-by: Jesse Barnes <jbarnes@virtuousgeek.org>
+Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
+
+---
+ drivers/gpu/drm/i915/i915_reg.h      |    1 +
+ drivers/gpu/drm/i915/intel_display.c |    5 +++++
+ 2 files changed, 6 insertions(+)
+
+--- a/drivers/gpu/drm/i915/i915_reg.h
++++ b/drivers/gpu/drm/i915/i915_reg.h
+@@ -3371,6 +3371,7 @@
+ #define  GT_FIFO_FREE_ENTRIES                 0x120008
+ #define GEN6_UCGCTL2                          0x9404
++# define GEN6_RCZUNIT_CLOCK_GATE_DISABLE              (1 << 13)
+ # define GEN6_RCPBUNIT_CLOCK_GATE_DISABLE             (1 << 12)
+ # define GEN6_RCCUNIT_CLOCK_GATE_DISABLE              (1 << 11)
+--- a/drivers/gpu/drm/i915/intel_display.c
++++ b/drivers/gpu/drm/i915/intel_display.c
+@@ -7457,6 +7457,11 @@ static void ivybridge_init_clock_gating(
+       I915_WRITE(WM2_LP_ILK, 0);
+       I915_WRITE(WM1_LP_ILK, 0);
++      /* According to the spec, bit 13 (RCZUNIT) must be set on IVB.
++       * This implements the WaDisableRCZUnitClockGating workaround.
++       */
++      I915_WRITE(GEN6_UCGCTL2, GEN6_RCZUNIT_CLOCK_GATE_DISABLE);
++
+       I915_WRITE(ILK_DSPCLK_GATE, IVB_VRHUNIT_CLK_GATE);
+       for_each_pipe(pipe)
diff --git a/queue-3.0/kprobes-adjust-fix-a-memory-leak-in-function-pre_handler_kretprobe.patch b/queue-3.0/kprobes-adjust-fix-a-memory-leak-in-function-pre_handler_kretprobe.patch
new file mode 100644 (file)
index 0000000..91ff4ae
--- /dev/null
@@ -0,0 +1,37 @@
+From JBeulich@suse.com  Wed Mar  7 11:32:41 2012
+From: "Jan Beulich" <JBeulich@suse.com>
+Date: Tue, 28 Feb 2012 10:41:37 +0000
+Subject: kprobes: adjust "fix a memory leak in function pre_handler_kretprobe()"
+To: <stable@kernel.org>
+Cc: <liuj97@gmail.com>,<gregkh@linuxfoundation.org>, "Jiri Slaby" <jslaby@suse.cz>
+Message-ID: <4F4CBD710200007800075270@nat28.tlf.novell.com>
+Content-Disposition: inline
+
+
+From: Jan Beulich <JBeulich@suse.com>
+
+3.0.21's 603b63484725a6e88e4ae5da58716efd88154b1e directly used
+the upstream patch, yet kprobes locking in 3.0.x uses spin_lock...()
+rather than raw_spin_lock...().
+
+Signed-off-by: Jan Beulich <jbeulich@suse.com>
+Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
+
+---
+ kernel/kprobes.c |    4 ++--
+ 1 file changed, 2 insertions(+), 2 deletions(-)
+
+--- a/kernel/kprobes.c
++++ b/kernel/kprobes.c
+@@ -1663,9 +1663,9 @@ static int __kprobes pre_handler_kretpro
+               ri->task = current;
+               if (rp->entry_handler && rp->entry_handler(ri, regs)) {
+-                      raw_spin_lock_irqsave(&rp->lock, flags);
++                      spin_lock_irqsave(&rp->lock, flags);
+                       hlist_add_head(&ri->hlist, &rp->free_instances);
+-                      raw_spin_unlock_irqrestore(&rp->lock, flags);
++                      spin_unlock_irqrestore(&rp->lock, flags);
+                       return 0;
+               }
index 42b6a53e5ef03066453e1dc79dd8b8e19ce7d247..1089778ba39de89a90c681462faa4ed21f634fcc 100644 (file)
@@ -36,3 +36,6 @@ asoc-i.mx-ssi-fix-dsp_a-format.patch
 bsg-fix-sysfs-link-remove-warning.patch
 acpi-pm-do-not-save-restore-nvs-on-asus-k54c-k54hr.patch
 avr32-select-generic-atomic64_t-support.patch
+kprobes-adjust-fix-a-memory-leak-in-function-pre_handler_kretprobe.patch
+drm-i915-gen7-implement-rczunit-workaround.patch
+drm-i915-gen7-implement-an-l3-caching-workaround.patch