--- /dev/null
+From 52d6d4ef5e6d1517688e27c11c01ab303ec681dd Mon Sep 17 00:00:00 2001
+From: Rajkumar Manoharan <rmanohar@qca.qualcomm.com>
+Date: Thu, 20 Oct 2011 14:22:43 +0530
+Subject: ath9k_hw: Fix regression of register offset for AR9003 chips
+
+From: Rajkumar Manoharan <rmanohar@qca.qualcomm.com>
+
+commit 52d6d4ef5e6d1517688e27c11c01ab303ec681dd upstream.
+
+My recent commits (3782c69d, 324c74a) introduced regression
+for register offset selection that based on the macversion.
+Not using parentheses in proper manner for ternary operator
+leads to select wrong offset for the registers.
+
+This issue was observed with AR9462 chip that immediate disconnect
+after the association with the following message
+
+ieee80211 phy3: wlan0: Failed to send nullfunc to AP 00:23:69:12:ea:47
+after 500ms, disconnecting.
+
+Signed-off-by: Rajkumar Manoharan <rmanohar@qca.qualcomm.com>
+Signed-off-by: John W. Linville <linville@tuxdriver.com>
+Signed-off-by: Greg Kroah-Hartman <gregkh@suse.de>
+
+---
+ drivers/net/wireless/ath/ath9k/ar9003_phy.h | 12 ++++++------
+ 1 file changed, 6 insertions(+), 6 deletions(-)
+
+--- a/drivers/net/wireless/ath/ath9k/ar9003_phy.h
++++ b/drivers/net/wireless/ath/ath9k/ar9003_phy.h
+@@ -572,12 +572,12 @@
+
+ #define AR_PHY_TXGAIN_TABLE (AR_SM_BASE + 0x300)
+
+-#define AR_PHY_TX_IQCAL_CONTROL_1 (AR_SM_BASE + AR_SREV_9485(ah) ? \
+- 0x3c8 : 0x448)
+-#define AR_PHY_TX_IQCAL_START (AR_SM_BASE + AR_SREV_9485(ah) ? \
+- 0x3c4 : 0x440)
+-#define AR_PHY_TX_IQCAL_STATUS_B0 (AR_SM_BASE + AR_SREV_9485(ah) ? \
+- 0x3f0 : 0x48c)
++#define AR_PHY_TX_IQCAL_CONTROL_1 (AR_SM_BASE + (AR_SREV_9485(ah) ? \
++ 0x3c8 : 0x448))
++#define AR_PHY_TX_IQCAL_START (AR_SM_BASE + (AR_SREV_9485(ah) ? \
++ 0x3c4 : 0x440))
++#define AR_PHY_TX_IQCAL_STATUS_B0 (AR_SM_BASE + (AR_SREV_9485(ah) ? \
++ 0x3f0 : 0x48c))
+ #define AR_PHY_TX_IQCAL_CORR_COEFF_B0(_i) (AR_SM_BASE + \
+ (AR_SREV_9485(ah) ? \
+ 0x3d0 : 0x450) + ((_i) << 2))
--- /dev/null
+From f5ff7cd1a84caa9545d952a37ac872ccb73825fb Mon Sep 17 00:00:00 2001
+From: Richard Cochran <richardcochran@gmail.com>
+Date: Fri, 21 Oct 2011 00:49:16 +0000
+Subject: dp83640: use proper function to free transmit time stamping packets
+
+From: Richard Cochran <richardcochran@gmail.com>
+
+commit f5ff7cd1a84caa9545d952a37ac872ccb73825fb upstream.
+
+The previous commit enforces a new rule for handling the cloned packets
+for transmit time stamping. These packets must not be freed using any other
+function than skb_complete_tx_timestamp. This commit fixes the one and only
+driver using this API.
+
+The driver first appeared in v3.0.
+
+Signed-off-by: Richard Cochran <richard.cochran@omicron.at>
+Acked-by: Eric Dumazet <eric.dumazet@gmail.com>
+Signed-off-by: David S. Miller <davem@davemloft.net>
+Signed-off-by: Greg Kroah-Hartman <gregkh@suse.de>
+
+---
+ drivers/net/phy/dp83640.c | 2 +-
+ 1 file changed, 1 insertion(+), 1 deletion(-)
+
+--- a/drivers/net/phy/dp83640.c
++++ b/drivers/net/phy/dp83640.c
+@@ -1067,7 +1067,7 @@ static void dp83640_txtstamp(struct phy_
+ struct dp83640_private *dp83640 = phydev->priv;
+
+ if (!dp83640->hwts_tx_en) {
+- kfree_skb(skb);
++ skb_complete_tx_timestamp(skb, NULL);
+ return;
+ }
+ skb_queue_tail(&dp83640->tx_queue, skb);
--- /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 | 12 ++++++++----
+ 1 file changed, 8 insertions(+), 4 deletions(-)
+
+--- a/drivers/md/raid5.c
++++ b/drivers/md/raid5.c
+@@ -3165,10 +3165,14 @@ static void handle_stripe(struct stripe_
+ /* check if the array has lost more than max_degraded devices and,
+ * if so, some requests might need to be failed.
+ */
+- if (s.failed > conf->max_degraded && s.to_read+s.to_write+s.written)
+- handle_failed_stripe(conf, sh, &s, disks, &s.return_bi);
+- if (s.failed > conf->max_degraded && s.syncing)
+- handle_failed_sync(conf, sh, &s);
++ if (s.failed > conf->max_degraded) {
++ sh->check_state = 0;
++ sh->reconstruct_state = 0;
++ if (s.to_read+s.to_write+s.written)
++ handle_failed_stripe(conf, sh, &s, disks, &s.return_bi);
++ if (s.syncing)
++ handle_failed_sync(conf, sh, &s);
++ }
+
+ /*
+ * might be able to return some write requests if the parity blocks
--- /dev/null
+From 257a4b42af7586fab4eaec7f04e6896b86551843 Mon Sep 17 00:00:00 2001
+From: Dan Williams <dan.j.williams@intel.com>
+Date: Tue, 8 Nov 2011 16:22:06 +1100
+Subject: md/raid5: STRIPE_ACTIVE has lock semantics, add barriers
+
+From: Dan Williams <dan.j.williams@intel.com>
+
+commit 257a4b42af7586fab4eaec7f04e6896b86551843 upstream.
+
+All updates that occur under STRIPE_ACTIVE should be globally visible
+when STRIPE_ACTIVE clears. test_and_set_bit() implies a barrier, but
+clear_bit() does not.
+
+This is suitable for 3.1-stable.
+
+Signed-off-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 | 4 ++--
+ 1 file changed, 2 insertions(+), 2 deletions(-)
+
+--- a/drivers/md/raid5.c
++++ b/drivers/md/raid5.c
+@@ -3116,7 +3116,7 @@ static void handle_stripe(struct stripe_
+ struct r5dev *pdev, *qdev;
+
+ clear_bit(STRIPE_HANDLE, &sh->state);
+- if (test_and_set_bit(STRIPE_ACTIVE, &sh->state)) {
++ if (test_and_set_bit_lock(STRIPE_ACTIVE, &sh->state)) {
+ /* already being handled, ensure it gets handled
+ * again when current action finishes */
+ set_bit(STRIPE_HANDLE, &sh->state);
+@@ -3381,7 +3381,7 @@ finish:
+
+ return_io(s.return_bi);
+
+- clear_bit(STRIPE_ACTIVE, &sh->state);
++ clear_bit_unlock(STRIPE_ACTIVE, &sh->state);
+ }
+
+ static void raid5_activate_delayed(raid5_conf_t *conf)
mtd-pxa3xx_nand-fix-blank-page-ecc-mismatch.patch
pm-suspend-off-by-one-in-pm_suspend.patch
crypto-cryptd-use-subsys_initcall-to-prevent-races-with-aesni.patch
+dp83640-use-proper-function-to-free-transmit-time-stamping.patch
+ath9k_hw-fix-regression-of-register-offset-for-ar9003-chips.patch
+md-raid5-abort-any-pending-parity-operations-when-array-fails.patch
+md-raid5-stripe_active-has-lock-semantics-add-barriers.patch