--- /dev/null
+From a477e4e6d48d3ac7c7a75bad40585cb391e5c237 Mon Sep 17 00:00:00 2001
+From: Luis R. Rodriguez <lrodriguez@atheros.com>
+Date: Fri, 3 Oct 2008 15:45:26 -0700
+Subject: ath9k: fix oops on trying to hold the wrong spinlock
+
+From: Luis R. Rodriguez <lrodriguez@atheros.com>
+
+commit a477e4e6d48d3ac7c7a75bad40585cb391e5c237 upstream
+
+We were trying to hold the wrong spinlock due to a typo
+on IEEE80211_BAR_CTL_TID_S's definition. We use this to
+compute the tid number and then hold this this tid number's
+spinlock.
+
+Signed-off-by: Vasanthakumar Thiagarajan <vasanth@atheros.com>
+Signed-off-by: Sujith <Sujith.Manoharan@atheros.com>
+Signed-off-by: Luis R. Rodriguez <lrodriguez@atheros.com>
+Signed-off-by: John W. Linville <linville@tuxdriver.com>
+Signed-off-by: Greg Kroah-Hartman <gregkh@suse.de>
+
+---
+ drivers/net/wireless/ath9k/core.h | 2 +-
+ 1 file changed, 1 insertion(+), 1 deletion(-)
+
+--- a/drivers/net/wireless/ath9k/core.h
++++ b/drivers/net/wireless/ath9k/core.h
+@@ -316,7 +316,7 @@ void ath_descdma_cleanup(struct ath_soft
+ #define ATH_RX_TIMEOUT 40 /* 40 milliseconds */
+ #define WME_NUM_TID 16
+ #define IEEE80211_BAR_CTL_TID_M 0xF000 /* tid mask */
+-#define IEEE80211_BAR_CTL_TID_S 2 /* tid shift */
++#define IEEE80211_BAR_CTL_TID_S 12 /* tid shift */
+
+ enum ATH_RX_TYPE {
+ ATH_RX_NON_CONSUMED = 0,