--- /dev/null
+From zajec5@gmail.com Wed Nov 16 15:21:46 2011
+From: Rafał Miłecki <zajec5@gmail.com>
+Date: Tue, 8 Nov 2011 17:15:03 +0100
+Subject: b43: refuse to load unsupported firmware
+To: stable@kernel.org, <Greg KH> greg@kroah.com
+Cc: linux-wireless@vger.kernel.org, b43-dev@lists.infradead.org, roman-vl@meta.ua, Rafał Miłecki <zajec5@gmail.com>
+Message-ID: <1320768903-8731-1-git-send-email-zajec5@gmail.com>
+
+[This patch is supposed to be applied in 3.1 (and maybe older) branches only.]
+
+New kernels support newer firmware that users may try to incorrectly use
+with older kernels. Display error and explain the problem in such a case
+
+Signed-off-by: Rafał Miłecki <zajec5@gmail.com>
+Signed-off-by: Greg Kroah-Hartman <gregkh@suse.de>
+
+---
+ drivers/net/wireless/b43/main.c | 7 +++++++
+ 1 file changed, 7 insertions(+)
+
+--- a/drivers/net/wireless/b43/main.c
++++ b/drivers/net/wireless/b43/main.c
+@@ -2401,6 +2401,13 @@ static int b43_upload_microcode(struct b
+ b43_print_fw_helptext(dev->wl, 1);
+ err = -EOPNOTSUPP;
+ goto error;
++ } else if (fwrev >= 598) {
++ b43err(dev->wl, "YOUR FIRMWARE IS TOO NEW. Support for "
++ "firmware 598 and up requires kernel 3.2 or newer. You "
++ "have to install older firmware or upgrade kernel.\n");
++ b43_print_fw_helptext(dev->wl, 1);
++ err = -EOPNOTSUPP;
++ goto error;
+ }
+ dev->fw.rev = fwrev;
+ dev->fw.patch = fwpatch;
--- /dev/null
+From 9a3f530f39f4490eaa18b02719fb74ce5f4d2d86 Mon Sep 17 00:00:00 2001
+From: NeilBrown <neilb@suse.de>
+Date: Tue, 8 Nov 2011 16:22:01 +1100
+Subject: md/raid5: abort any pending parity operations when array fails.
+
+From: NeilBrown <neilb@suse.de>
+
+commit 9a3f530f39f4490eaa18b02719fb74ce5f4d2d86 upstream.
+
+When the number of failed devices exceeds the allowed number
+we must abort any active parity operations (checks or updates) as they
+are no longer meaningful, and can lead to a BUG_ON in
+handle_parity_checks6.
+
+This bug was introduce by commit 6c0069c0ae9659e3a91b68eaed06a5c6c37f45c8
+in 2.6.29.
+
+Reported-by: Manish Katiyar <mkatiyar@gmail.com>
+Tested-by: Manish Katiyar <mkatiyar@gmail.com>
+Acked-by: Dan Williams <dan.j.williams@intel.com>
+Signed-off-by: NeilBrown <neilb@suse.de>
+Signed-off-by: Greg Kroah-Hartman <gregkh@suse.de>
+
+---
+ drivers/md/raid5.c | 32 ++++++++++++++++++++------------
+ 1 file changed, 20 insertions(+), 12 deletions(-)
+
+--- a/drivers/md/raid5.c
++++ b/drivers/md/raid5.c
+@@ -3120,12 +3120,16 @@ static void handle_stripe5(struct stripe
+ /* check if the array has lost two devices and, if so, some requests might
+ * need to be failed
+ */
+- if (s.failed > 1 && s.to_read+s.to_write+s.written)
+- handle_failed_stripe(conf, sh, &s, disks, &return_bi);
+- if (s.failed > 1 && s.syncing) {
+- md_done_sync(conf->mddev, STRIPE_SECTORS,0);
+- clear_bit(STRIPE_SYNCING, &sh->state);
+- s.syncing = 0;
++ if (s.failed > 1) {
++ sh->check_state = 0;
++ sh->reconstruct_state = 0;
++ if (s.to_read+s.to_write+s.written)
++ handle_failed_stripe(conf, sh, &s, disks, &return_bi);
++ if (s.syncing) {
++ md_done_sync(conf->mddev, STRIPE_SECTORS,0);
++ clear_bit(STRIPE_SYNCING, &sh->state);
++ s.syncing = 0;
++ }
+ }
+
+ /* might be able to return some write requests if the parity block
+@@ -3412,12 +3416,16 @@ static void handle_stripe6(struct stripe
+ /* check if the array has lost >2 devices and, if so, some requests
+ * might need to be failed
+ */
+- if (s.failed > 2 && s.to_read+s.to_write+s.written)
+- handle_failed_stripe(conf, sh, &s, disks, &return_bi);
+- if (s.failed > 2 && s.syncing) {
+- md_done_sync(conf->mddev, STRIPE_SECTORS,0);
+- clear_bit(STRIPE_SYNCING, &sh->state);
+- s.syncing = 0;
++ if (s.failed > 2) {
++ sh->check_state = 0;
++ sh->reconstruct_state = 0;
++ if (s.to_read+s.to_write+s.written)
++ handle_failed_stripe(conf, sh, &s, disks, &return_bi);
++ if (s.syncing) {
++ md_done_sync(conf->mddev, STRIPE_SECTORS,0);
++ clear_bit(STRIPE_SYNCING, &sh->state);
++ s.syncing = 0;
++ }
+ }
+
+ /*
--- /dev/null
+From f09ee0451a44a4e913a7c3cec3805508f7de6c54 Mon Sep 17 00:00:00 2001
+From: Thomas Weber <weber@corscience.de>
+Date: Mon, 5 Sep 2011 11:26:33 +0200
+Subject: mfd: Fix twl4030 dependencies for audio codec
+
+From: Thomas Weber <weber@corscience.de>
+
+commit f09ee0451a44a4e913a7c3cec3805508f7de6c54 upstream.
+
+The codec for Devkit8000 (TWL4030) was not detected except
+when build with CONFIG_SND_SOC_ALL_CODECS.
+
+twl-core.c still uses the CONFIG_TWL4030_CODEC for
+twl_has_codec().
+
+In commit 57fe7251f5bfc4332f24479376de48a1e8ca6211
+the CONFIG_TWL4030_CODEC was renamed
+into CONFIG_MFD_TWL4030_AUDIO, thatswhy the codec
+was not detected.
+
+This patch renames the CONFIG_ TWL4030_CODEC into
+CONFIG_MFD_TWL4030_AUDIO in twl-core.c.
+
+Signed-off-by: Thomas Weber <weber@corscience.de>
+Acked-by: Peter Ujfalusi <peter.ujfalusi@ti.com>
+Signed-off-by: Samuel Ortiz <sameo@linux.intel.com>
+Cc: Jarkko Nikula <jarkko.nikula@bitmer.com>
+Signed-off-by: Greg Kroah-Hartman <gregkh@suse.de>
+
+---
+ drivers/mfd/twl-core.c | 2 +-
+ 1 file changed, 1 insertion(+), 1 deletion(-)
+
+--- a/drivers/mfd/twl-core.c
++++ b/drivers/mfd/twl-core.c
+@@ -109,7 +109,7 @@
+ #define twl_has_watchdog() false
+ #endif
+
+-#if defined(CONFIG_TWL4030_CODEC) || defined(CONFIG_TWL4030_CODEC_MODULE) ||\
++#if defined(CONFIG_MFD_TWL4030_AUDIO) || defined(CONFIG_MFD_TWL4030_AUDIO_MODULE) ||\
+ defined(CONFIG_SND_SOC_TWL6040) || defined(CONFIG_SND_SOC_TWL6040_MODULE)
+ #define twl_has_codec() true
+ #else
drm-i915-enable-ring-freq-scaling-rc6-and-graphics-turbo-on-ivy-bridge-v3.patch
sfi-table-irq-0xff-means-no-interrupt.patch
x86-mrst-use-a-temporary-variable-for-sfi-irq.patch
+b43-refuse-to-load-unsupported-firmware.patch
+md-raid5-abort-any-pending-parity-operations-when-array-fails.patch
+mfd-fix-twl4030-dependencies-for-audio-codec.patch