--- /dev/null
+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)) |
--- /dev/null
+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)
--- /dev/null
+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;
+ }
+
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