* [PATCH] ath9k: fix oops on trying to hold the wrong spinlock @ 2008-10-16 11:12 Luis R. Rodriguez 2008-10-16 21:54 ` [stable] " Greg KH 0 siblings, 1 reply; 6+ messages in thread From: Luis R. Rodriguez @ 2008-10-16 11:12 UTC (permalink / raw) To: stable; +Cc: steven, linville, linux-wireless This fixes on oops when you get try to send a BA to an 11n AP. The oops occurred because we were trying to aquire an incorrect spinlock. 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. Tested-by: Steven Noonan <steven@uplinklabs.net> 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> --- I don't see this queue'd yet for 2.6.27.2 drivers/net/wireless/ath9k/core.h | 2 +- 1 files changed, 1 insertions(+), 1 deletions(-) diff --git a/drivers/net/wireless/ath9k/core.h b/drivers/net/wireless/ath9k/core.h index 80814c9..5b4f1c4 100644 --- a/drivers/net/wireless/ath9k/core.h +++ b/drivers/net/wireless/ath9k/core.h @@ -309,7 +309,7 @@ void ath_descdma_cleanup(struct ath_softc *sc, #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, -- 1.5.6.rc2.15.g457bb.dirty -- To unsubscribe from this list: send the line "unsubscribe linux-wireless" in the body of a message to majordomo@vger.kernel.org More majordomo info at http://vger.kernel.org/majordomo-info.html ^ permalink raw reply related [flat|nested] 6+ messages in thread
* Re: [stable] [PATCH] ath9k: fix oops on trying to hold the wrong spinlock 2008-10-16 11:12 [PATCH] ath9k: fix oops on trying to hold the wrong spinlock Luis R. Rodriguez @ 2008-10-16 21:54 ` Greg KH 2008-10-16 23:12 ` Luis R. Rodriguez 0 siblings, 1 reply; 6+ messages in thread From: Greg KH @ 2008-10-16 21:54 UTC (permalink / raw) To: Luis R. Rodriguez; +Cc: stable, steven, linux-wireless, linville On Thu, Oct 16, 2008 at 04:12:55AM -0700, Luis R. Rodriguez wrote: > This fixes on oops when you get try to send a BA to an 11n AP. > The oops occurred because we were trying to aquire an incorrect > spinlock. > > 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. > > Tested-by: Steven Noonan <steven@uplinklabs.net> > 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> > --- > > I don't see this queue'd yet for 2.6.27.2 Is it in Linus's tree? If so, do you have a git commit id? thanks, greg k-h ^ permalink raw reply [flat|nested] 6+ messages in thread
* Re: [stable] [PATCH] ath9k: fix oops on trying to hold the wrong spinlock 2008-10-16 21:54 ` [stable] " Greg KH @ 2008-10-16 23:12 ` Luis R. Rodriguez 2008-10-16 23:28 ` Greg KH 0 siblings, 1 reply; 6+ messages in thread From: Luis R. Rodriguez @ 2008-10-16 23:12 UTC (permalink / raw) To: Greg KH; +Cc: stable, steven, linux-wireless, linville On Thu, Oct 16, 2008 at 2:54 PM, Greg KH <greg@kroah.com> wrote: > On Thu, Oct 16, 2008 at 04:12:55AM -0700, Luis R. Rodriguez wrote: >> This fixes on oops when you get try to send a BA to an 11n AP. >> The oops occurred because we were trying to aquire an incorrect >> spinlock. >> >> 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. >> >> Tested-by: Steven Noonan <steven@uplinklabs.net> >> 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> >> --- >> >> I don't see this queue'd yet for 2.6.27.2 > > Is it in Linus's tree? If so, do you have a git commit id? Got it. a477e4e6d48d3ac7c7a75bad40585cb391e5c237 If you can add the Reported-by tag it'd be great, I missed it on Linus' tree. Thanks, Luis ^ permalink raw reply [flat|nested] 6+ messages in thread
* Re: [stable] [PATCH] ath9k: fix oops on trying to hold the wrong spinlock 2008-10-16 23:12 ` Luis R. Rodriguez @ 2008-10-16 23:28 ` Greg KH 2008-10-16 23:41 ` Luis R. Rodriguez 0 siblings, 1 reply; 6+ messages in thread From: Greg KH @ 2008-10-16 23:28 UTC (permalink / raw) To: Luis R. Rodriguez; +Cc: steven, linux-wireless, stable, linville On Thu, Oct 16, 2008 at 04:12:02PM -0700, Luis R. Rodriguez wrote: > On Thu, Oct 16, 2008 at 2:54 PM, Greg KH <greg@kroah.com> wrote: > > On Thu, Oct 16, 2008 at 04:12:55AM -0700, Luis R. Rodriguez wrote: > >> This fixes on oops when you get try to send a BA to an 11n AP. > >> The oops occurred because we were trying to aquire an incorrect > >> spinlock. > >> > >> 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. > >> > >> Tested-by: Steven Noonan <steven@uplinklabs.net> > >> 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> > >> --- > >> > >> I don't see this queue'd yet for 2.6.27.2 > > > > Is it in Linus's tree? If so, do you have a git commit id? > > Got it. > > a477e4e6d48d3ac7c7a75bad40585cb391e5c237 > > If you can add the Reported-by tag it'd be great, I missed it on Linus' tree. You mean the "tested-by" flag? I've added that, I don't see a reported-by flag above. thanks, greg k-h ^ permalink raw reply [flat|nested] 6+ messages in thread
* Re: [stable] [PATCH] ath9k: fix oops on trying to hold the wrong spinlock 2008-10-16 23:28 ` Greg KH @ 2008-10-16 23:41 ` Luis R. Rodriguez 0 siblings, 0 replies; 6+ messages in thread From: Luis R. Rodriguez @ 2008-10-16 23:41 UTC (permalink / raw) To: Greg KH; +Cc: steven, linux-wireless, stable, linville On Thu, Oct 16, 2008 at 4:28 PM, Greg KH <greg@kroah.com> wrote: > On Thu, Oct 16, 2008 at 04:12:02PM -0700, Luis R. Rodriguez wrote: >> On Thu, Oct 16, 2008 at 2:54 PM, Greg KH <greg@kroah.com> wrote: >> > On Thu, Oct 16, 2008 at 04:12:55AM -0700, Luis R. Rodriguez wrote: >> >> This fixes on oops when you get try to send a BA to an 11n AP. >> >> The oops occurred because we were trying to aquire an incorrect >> >> spinlock. >> >> >> >> 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. >> >> >> >> Tested-by: Steven Noonan <steven@uplinklabs.net> >> >> 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> >> >> --- >> >> >> >> I don't see this queue'd yet for 2.6.27.2 >> > >> > Is it in Linus's tree? If so, do you have a git commit id? >> >> Got it. >> >> a477e4e6d48d3ac7c7a75bad40585cb391e5c237 >> >> If you can add the Reported-by tag it'd be great, I missed it on Linus' tree. > > You mean the "tested-by" flag? I've added that, I don't see a > reported-by flag above. Yeap, tested. Luis ^ permalink raw reply [flat|nested] 6+ messages in thread
* [PATCH 0/3] ath9k: pending patches @ 2008-10-03 22:45 Luis R. Rodriguez 2008-10-03 22:45 ` [PATCH 1/3] ath9k: kill ath9k's memzero() and use memset() instead Luis R. Rodriguez 0 siblings, 1 reply; 6+ messages in thread From: Luis R. Rodriguez @ 2008-10-03 22:45 UTC (permalink / raw) To: linville, linville; +Cc: Luis R. Rodriguez, linux-wireless This is the list of pending patches for wireless-testing for ath9k. I hadn't ported over today's fix so its going in this series. Luis ^ permalink raw reply [flat|nested] 6+ messages in thread
* [PATCH 1/3] ath9k: kill ath9k's memzero() and use memset() instead 2008-10-03 22:45 [PATCH 0/3] ath9k: pending patches Luis R. Rodriguez @ 2008-10-03 22:45 ` Luis R. Rodriguez 2008-10-03 22:45 ` [PATCH 2/3] ath9k: fix oops on trying to hold the wrong spinlock Luis R. Rodriguez 0 siblings, 1 reply; 6+ messages in thread From: Luis R. Rodriguez @ 2008-10-03 22:45 UTC (permalink / raw) To: linville, linville; +Cc: Luis R. Rodriguez, linux-wireless Part of the cleanup on ath9k -- this was also causing some annoying compile time warnings. Signed-off-by: Luis R. Rodriguez <lrodriguez@atheros.com> --- drivers/net/wireless/ath9k/beacon.c | 8 ++++---- drivers/net/wireless/ath9k/core.c | 14 +++++++------- drivers/net/wireless/ath9k/core.h | 5 +---- drivers/net/wireless/ath9k/recv.c | 4 ++-- drivers/net/wireless/ath9k/xmit.c | 10 +++++----- 5 files changed, 19 insertions(+), 22 deletions(-) diff --git a/drivers/net/wireless/ath9k/beacon.c b/drivers/net/wireless/ath9k/beacon.c index eedb465..9e15c30 100644 --- a/drivers/net/wireless/ath9k/beacon.c +++ b/drivers/net/wireless/ath9k/beacon.c @@ -129,7 +129,7 @@ static void ath_beacon_setup(struct ath_softc *sc, ds /* first descriptor */ ); - memzero(series, sizeof(struct ath9k_11n_rate_series) * 4); + memset(series, 0, sizeof(struct ath9k_11n_rate_series) * 4); series[0].Tries = 1; series[0].Rate = rate; series[0].ChSel = sc->sc_tx_chainmask; @@ -282,7 +282,7 @@ int ath_beaconq_setup(struct ath_hal *ah) { struct ath9k_tx_queue_info qi; - memzero(&qi, sizeof(qi)); + memset(&qi, 0, sizeof(qi)); qi.tqi_aifs = 1; qi.tqi_cwmin = 0; qi.tqi_cwmax = 0; @@ -662,7 +662,7 @@ void ath_beacon_config(struct ath_softc *sc, int if_id) else av_opmode = sc->sc_ah->ah_opmode; - memzero(&conf, sizeof(struct ath_beacon_config)); + memset(&conf, 0, sizeof(struct ath_beacon_config)); conf.beacon_interval = sc->hw->conf.beacon_int ? sc->hw->conf.beacon_int : ATH_DEFAULT_BINTVAL; @@ -738,7 +738,7 @@ void ath_beacon_config(struct ath_softc *sc, int if_id) } } while (nexttbtt < tsftu); #undef FUDGE - memzero(&bs, sizeof(bs)); + memset(&bs, 0, sizeof(bs)); bs.bs_intval = intval; bs.bs_nexttbtt = nexttbtt; bs.bs_dtimperiod = dtimperiod*intval; diff --git a/drivers/net/wireless/ath9k/core.c b/drivers/net/wireless/ath9k/core.c index d7f5257..5af7dfb 100644 --- a/drivers/net/wireless/ath9k/core.c +++ b/drivers/net/wireless/ath9k/core.c @@ -65,7 +65,7 @@ static void ath_setcurmode(struct ath_softc *sc, enum wireless_mode mode) for (i = 0; i < rt->rateCount; i++) sc->sc_rixmap[rt->info[i].rateCode] = (u8) i; - memzero(sc->sc_hwmap, sizeof(sc->sc_hwmap)); + memset(sc->sc_hwmap, 0, sizeof(sc->sc_hwmap)); for (i = 0; i < 256; i++) { u8 ix = rt->rateCodeToIndex[i]; @@ -417,7 +417,7 @@ static void ath_chainmask_sel_init(struct ath_softc *sc, struct ath_node *an) { struct ath_chainmask_sel *cm = &an->an_chainmask_sel; - memzero(cm, sizeof(struct ath_chainmask_sel)); + memset(cm, 0, sizeof(struct ath_chainmask_sel)); cm->cur_tx_mask = sc->sc_tx_chainmask; cm->cur_rx_mask = sc->sc_rx_chainmask; @@ -526,7 +526,7 @@ int ath_vap_attach(struct ath_softc *sc, if (avp == NULL) return -ENOMEM; - memzero(avp, sizeof(struct ath_vap)); + memset(avp, 0, sizeof(struct ath_vap)); avp->av_if_data = if_data; /* Set the VAP opmode */ avp->av_opmode = opmode; @@ -1219,7 +1219,7 @@ struct ath_node *ath_node_attach(struct ath_softc *sc, u8 *addr, int if_id) an = kmalloc(sizeof(struct ath_node), GFP_ATOMIC); if (an == NULL) return NULL; - memzero(an, sizeof(*an)); + memset(an, 0, sizeof(*an)); an->an_sc = sc; memcpy(an->an_addr, addr, ETH_ALEN); @@ -1606,7 +1606,7 @@ int ath_descdma_setup(struct ath_softc *sc, error = -ENOMEM; goto fail2; } - memzero(bf, bsize); + memset(bf, 0, bsize); dd->dd_bufptr = bf; INIT_LIST_HEAD(head); @@ -1638,7 +1638,7 @@ fail2: pci_free_consistent(sc->pdev, dd->dd_desc_len, dd->dd_desc, dd->dd_desc_paddr); fail: - memzero(dd, sizeof(*dd)); + memset(dd, 0, sizeof(*dd)); return error; #undef ATH_DESC_4KB_BOUND_CHECK #undef ATH_DESC_4KB_BOUND_NUM_SKIPPED @@ -1663,7 +1663,7 @@ void ath_descdma_cleanup(struct ath_softc *sc, INIT_LIST_HEAD(head); kfree(dd->dd_bufptr); - memzero(dd, sizeof(*dd)); + memset(dd, 0, sizeof(*dd)); } /*************/ diff --git a/drivers/net/wireless/ath9k/core.h b/drivers/net/wireless/ath9k/core.h index 872f0c5..80814c9 100644 --- a/drivers/net/wireless/ath9k/core.h +++ b/drivers/net/wireless/ath9k/core.h @@ -84,9 +84,6 @@ struct ath_node; #define TSF_TO_TU(_h,_l) \ ((((u32)(_h)) << 22) | (((u32)(_l)) >> 10)) -/* XXX: remove */ -#define memzero(_buf, _len) memset(_buf, 0, _len) - #define ATH9K_BH_STATUS_INTACT 0 #define ATH9K_BH_STATUS_CHANGE 1 @@ -184,7 +181,7 @@ void ath_update_chainmask(struct ath_softc *sc, int is_ht); (_bf)->bf_lastbf = NULL; \ (_bf)->bf_lastfrm = NULL; \ (_bf)->bf_next = NULL; \ - memzero(&((_bf)->bf_state), \ + memset(&((_bf)->bf_state), 0, \ sizeof(struct ath_buf_state)); \ } while (0) diff --git a/drivers/net/wireless/ath9k/recv.c b/drivers/net/wireless/ath9k/recv.c index 4982563..f4be5d1 100644 --- a/drivers/net/wireless/ath9k/recv.c +++ b/drivers/net/wireless/ath9k/recv.c @@ -892,7 +892,7 @@ int ath_rx_tasklet(struct ath_softc *sc, int flush) hdr = (struct ieee80211_hdr *)skb->data; fc = hdr->frame_control; - memzero(&rx_status, sizeof(struct ath_recv_status)); + memset(&rx_status, 0, sizeof(struct ath_recv_status)); if (ds->ds_rxstat.rs_more) { /* @@ -1166,7 +1166,7 @@ int ath_rx_aggr_start(struct ath_softc *sc, } else { /* Ensure the memory is zeroed out (all internal * pointers are null) */ - memzero(rxtid->rxbuf, ATH_TID_MAX_BUFS * + memset(rxtid->rxbuf, 0, ATH_TID_MAX_BUFS * sizeof(struct ath_rxbuf)); DPRINTF(sc, ATH_DBG_AGGR, "%s: Allocated @%p\n", __func__, rxtid->rxbuf); diff --git a/drivers/net/wireless/ath9k/xmit.c b/drivers/net/wireless/ath9k/xmit.c index 2592905..bdcb9e1 100644 --- a/drivers/net/wireless/ath9k/xmit.c +++ b/drivers/net/wireless/ath9k/xmit.c @@ -729,7 +729,7 @@ static void ath_buf_set_rate(struct ath_softc *sc, struct ath_buf *bf) /* * Setup HAL rate series */ - memzero(series, sizeof(struct ath9k_11n_rate_series) * 4); + memset(series, 0, sizeof(struct ath9k_11n_rate_series) * 4); for (i = 0; i < 4; i++) { if (!bf->bf_rcs[i].tries) @@ -817,7 +817,7 @@ static void ath_buf_set_rate(struct ath_softc *sc, struct ath_buf *bf) * Disable multi-rate retry when using RTS/CTS by clearing * series 1, 2 and 3. */ - memzero(&series[1], sizeof(struct ath9k_11n_rate_series) * 3); + memset(&series[1], 0, sizeof(struct ath9k_11n_rate_series) * 3); } /* @@ -930,7 +930,7 @@ static void ath_tx_complete_aggr_rifs(struct ath_softc *sc, ATH_DS_BA_BITMAP(ds), WME_BA_BMP_SIZE >> 3); } else { - memzero(ba, WME_BA_BMP_SIZE >> 3); + memset(ba, 0, WME_BA_BMP_SIZE >> 3); /* * AR5416 can become deaf/mute when BA @@ -943,7 +943,7 @@ static void ath_tx_complete_aggr_rifs(struct ath_softc *sc, needreset = 1; } } else { - memzero(ba, WME_BA_BMP_SIZE >> 3); + memset(ba, 0, WME_BA_BMP_SIZE >> 3); } } @@ -2098,7 +2098,7 @@ struct ath_txq *ath_txq_setup(struct ath_softc *sc, int qtype, int subtype) struct ath9k_tx_queue_info qi; int qnum; - memzero(&qi, sizeof(qi)); + memset(&qi, 0, sizeof(qi)); qi.tqi_subtype = subtype; qi.tqi_aifs = ATH9K_TXQ_USEDEFAULT; qi.tqi_cwmin = ATH9K_TXQ_USEDEFAULT; -- 1.5.6.rc2.15.g457bb.dirty ^ permalink raw reply related [flat|nested] 6+ messages in thread
* [PATCH 2/3] ath9k: fix oops on trying to hold the wrong spinlock 2008-10-03 22:45 ` [PATCH 1/3] ath9k: kill ath9k's memzero() and use memset() instead Luis R. Rodriguez @ 2008-10-03 22:45 ` Luis R. Rodriguez 2008-10-05 2:32 ` Luis R. Rodriguez 0 siblings, 1 reply; 6+ messages in thread From: Luis R. Rodriguez @ 2008-10-03 22:45 UTC (permalink / raw) To: linville, linville Cc: Luis R. Rodriguez, linux-wireless, Vasanthakumar Thiagarajan, Sujith 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> --- drivers/net/wireless/ath9k/core.h | 2 +- 1 files changed, 1 insertions(+), 1 deletions(-) diff --git a/drivers/net/wireless/ath9k/core.h b/drivers/net/wireless/ath9k/core.h index 80814c9..5b4f1c4 100644 --- a/drivers/net/wireless/ath9k/core.h +++ b/drivers/net/wireless/ath9k/core.h @@ -309,7 +309,7 @@ void ath_descdma_cleanup(struct ath_softc *sc, #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, -- 1.5.6.rc2.15.g457bb.dirty ^ permalink raw reply related [flat|nested] 6+ messages in thread
* Re: [PATCH 2/3] ath9k: fix oops on trying to hold the wrong spinlock 2008-10-03 22:45 ` [PATCH 2/3] ath9k: fix oops on trying to hold the wrong spinlock Luis R. Rodriguez @ 2008-10-05 2:32 ` Luis R. Rodriguez 2008-10-05 7:34 ` [PATCH] " Ingo Molnar 0 siblings, 1 reply; 6+ messages in thread From: Luis R. Rodriguez @ 2008-10-05 2:32 UTC (permalink / raw) To: John W. Linville Cc: Luis R. Rodriguez, linux-wireless, Vasanthakumar Thiagarajan, Sujith, Ingo Molnar On Fri, Oct 3, 2008 at 3:45 PM, Luis R. Rodriguez <lrodriguez@atheros.com> wrote: > 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> Just a head up John -- Ingo has already sucked this into his tree with a proper Reported-by. We still need it in wireless-testing though, not sure how that will be handled. Luis ^ permalink raw reply [flat|nested] 6+ messages in thread
* [PATCH] ath9k: fix oops on trying to hold the wrong spinlock 2008-10-05 2:32 ` Luis R. Rodriguez @ 2008-10-05 7:34 ` Ingo Molnar 0 siblings, 0 replies; 6+ messages in thread From: Ingo Molnar @ 2008-10-05 7:34 UTC (permalink / raw) To: Luis R. Rodriguez Cc: John W. Linville, linux-wireless, Vasanthakumar Thiagarajan, Sujith * Luis R. Rodriguez <lrodriguez@atheros.com> wrote: > On Fri, Oct 3, 2008 at 3:45 PM, Luis R. Rodriguez > <lrodriguez@atheros.com> wrote: > > 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> > > Just a head up John -- Ingo has already sucked this into his tree with > a proper Reported-by. We still need it in wireless-testing though, not > sure how that will be handled. Small sidenote: in terms of upstream merging tip/out-of-tree is a dead-end (as its name implies) - it's a special temporary throw-away branch for hot fixes that fall outside the normal scope of -tip. We periodically rebase tip/out-of-tree against -git and throw away patches that go upstream via other routes. It's never merged directly to Linus. Perhaps we should rename it tip/not-for-linus ? So we are glad to test out patches, but John please apply the patch below to the wireless tree so that it's not lost. (probably for v2.6.27.1) We are just helping out with testing and we do not want to interfere in any way with the wireless git workflow. Ingo ------------------> >From fff3ddac71cf05dda8501a3449c167340e46b755 Mon Sep 17 00:00:00 2001 From: Luis R. Rodriguez <lrodriguez@atheros.com> Date: Fri, 3 Oct 2008 04:49:21 -0700 Subject: [PATCH] ath9k: fix oops on trying to hold the wrong spinlock Steven Noonan reported a crash that occurs during ath9k module load. 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 during ath_bar_rx(). Reported-by: Steven Noonan <steven@uplinklabs.net> 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> Tested-by: Steven Noonan <steven@uplinklabs.net> Signed-off-by: Ingo Molnar <mingo@elte.hu> --- drivers/net/wireless/ath9k/core.h | 2 +- 1 files changed, 1 insertions(+), 1 deletions(-) diff --git a/drivers/net/wireless/ath9k/core.h b/drivers/net/wireless/ath9k/core.h index 2f84093..88f4cc3 100644 --- a/drivers/net/wireless/ath9k/core.h +++ b/drivers/net/wireless/ath9k/core.h @@ -316,7 +316,7 @@ void ath_descdma_cleanup(struct ath_softc *sc, #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, ^ permalink raw reply related [flat|nested] 6+ messages in thread
end of thread, other threads:[~2008-10-16 23:41 UTC | newest] Thread overview: 6+ messages (download: mbox.gz follow: Atom feed -- links below jump to the message on this page -- 2008-10-16 11:12 [PATCH] ath9k: fix oops on trying to hold the wrong spinlock Luis R. Rodriguez 2008-10-16 21:54 ` [stable] " Greg KH 2008-10-16 23:12 ` Luis R. Rodriguez 2008-10-16 23:28 ` Greg KH 2008-10-16 23:41 ` Luis R. Rodriguez -- strict thread matches above, loose matches on Subject: below -- 2008-10-03 22:45 [PATCH 0/3] ath9k: pending patches Luis R. Rodriguez 2008-10-03 22:45 ` [PATCH 1/3] ath9k: kill ath9k's memzero() and use memset() instead Luis R. Rodriguez 2008-10-03 22:45 ` [PATCH 2/3] ath9k: fix oops on trying to hold the wrong spinlock Luis R. Rodriguez 2008-10-05 2:32 ` Luis R. Rodriguez 2008-10-05 7:34 ` [PATCH] " Ingo Molnar
This is a public inbox, see mirroring instructions for how to clone and mirror all data and code used for this inbox; as well as URLs for NNTP newsgroup(s).