From: Greg Kroah-Hartman Date: Wed, 16 Nov 2011 23:47:32 +0000 (-0800) Subject: 3.0 patches X-Git-Tag: v3.0.10~6 X-Git-Url: http://git.ipfire.org/?a=commitdiff_plain;h=6602abc45d4209ef40acd674c59eceb87c7ca9a4;p=thirdparty%2Fkernel%2Fstable-queue.git 3.0 patches added patches: 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 --- diff --git a/queue-3.0/b43-refuse-to-load-unsupported-firmware.patch b/queue-3.0/b43-refuse-to-load-unsupported-firmware.patch new file mode 100644 index 00000000000..19862c37173 --- /dev/null +++ b/queue-3.0/b43-refuse-to-load-unsupported-firmware.patch @@ -0,0 +1,36 @@ +From zajec5@gmail.com Wed Nov 16 15:21:46 2011 +From: Rafał Miłecki +Date: Tue, 8 Nov 2011 17:15:03 +0100 +Subject: b43: refuse to load unsupported firmware +To: stable@kernel.org, greg@kroah.com +Cc: linux-wireless@vger.kernel.org, b43-dev@lists.infradead.org, roman-vl@meta.ua, Rafał Miłecki +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 +Signed-off-by: Greg Kroah-Hartman + +--- + 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; diff --git a/queue-3.0/md-raid5-abort-any-pending-parity-operations-when-array-fails.patch b/queue-3.0/md-raid5-abort-any-pending-parity-operations-when-array-fails.patch new file mode 100644 index 00000000000..a9a34f3c9fb --- /dev/null +++ b/queue-3.0/md-raid5-abort-any-pending-parity-operations-when-array-fails.patch @@ -0,0 +1,75 @@ +From 9a3f530f39f4490eaa18b02719fb74ce5f4d2d86 Mon Sep 17 00:00:00 2001 +From: NeilBrown +Date: Tue, 8 Nov 2011 16:22:01 +1100 +Subject: md/raid5: abort any pending parity operations when array fails. + +From: NeilBrown + +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 +Tested-by: Manish Katiyar +Acked-by: Dan Williams +Signed-off-by: NeilBrown +Signed-off-by: Greg Kroah-Hartman + +--- + 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; ++ } + } + + /* diff --git a/queue-3.0/mfd-fix-twl4030-dependencies-for-audio-codec.patch b/queue-3.0/mfd-fix-twl4030-dependencies-for-audio-codec.patch new file mode 100644 index 00000000000..0ae161e685c --- /dev/null +++ b/queue-3.0/mfd-fix-twl4030-dependencies-for-audio-codec.patch @@ -0,0 +1,44 @@ +From f09ee0451a44a4e913a7c3cec3805508f7de6c54 Mon Sep 17 00:00:00 2001 +From: Thomas Weber +Date: Mon, 5 Sep 2011 11:26:33 +0200 +Subject: mfd: Fix twl4030 dependencies for audio codec + +From: Thomas Weber + +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 +Acked-by: Peter Ujfalusi +Signed-off-by: Samuel Ortiz +Cc: Jarkko Nikula +Signed-off-by: Greg Kroah-Hartman + +--- + 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 diff --git a/queue-3.0/series b/queue-3.0/series index f2a7e14dd33..63f434eba3a 100644 --- a/queue-3.0/series +++ b/queue-3.0/series @@ -15,3 +15,6 @@ drm-radeon-kms-fix-up-gpio-i2c-mask-bits-for-r4xx.patch 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