On Thu, Oct 21, 2010 at 12:05:15AM -0700, Senthilkumar Balasubramanian wrote: > On Thu, Oct 21, 2010 at 11:43:50AM +0530, Luis R. Rodriguez wrote: > > On Wed, Oct 20, 2010 at 11:03 PM, Senthil Balasubramanian > > <senthilkumar@xxxxxxxxxxx> wrote: > > > On Thu, Oct 21, 2010 at 04:37:05AM +0530, Luis R. Rodriguez wrote: > > >> The real way to lock RX is to contend on the PCU > > >> and reset, this will be fixed in the next patch but for > > >> now just do the renames so that the next patch which changes > > >> the locking order is crystal clear. > > >> > > >> This is part of a series that will help resolve the bug: > > >> > > >> https://bugzilla.kernel.org/show_bug.cgi?id=14624 > > >> > > >> For more details about this issue refer to: > > >> > > >> http://marc.info/?l=linux-wireless&m=128629803703756&w=2 > > >> > > >> Cc: stable@xxxxxxxxxx > > >> Cc: Ben Greear <greearb@xxxxxxxxxxxxxxx> > > >> Cc: Kyungwan Nam <kyungwan.nam@xxxxxxxxxxx> > > >> Signed-off-by: Luis R. Rodriguez <lrodriguez@xxxxxxxxxxx> > > >> --- > > >> drivers/net/wireless/ath/ath9k/ath9k.h | 2 +- > > >> drivers/net/wireless/ath/ath9k/main.c | 4 ++-- > > >> drivers/net/wireless/ath/ath9k/recv.c | 6 +++--- > > >> 3 files changed, 6 insertions(+), 6 deletions(-) > > >> > > >> diff --git a/drivers/net/wireless/ath/ath9k/ath9k.h b/drivers/net/wireless/ath/ath9k/ath9k.h > > >> index 0f0bc54..81fed83 100644 > > >> --- a/drivers/net/wireless/ath/ath9k/ath9k.h > > >> +++ b/drivers/net/wireless/ath/ath9k/ath9k.h > > >> @@ -309,7 +309,7 @@ struct ath_rx { > > >> u8 rxotherant; > > >> u32 *rxlink; > > >> unsigned int rxfilter; > > >> - spinlock_t rxflushlock; > > >> + spinlock_t pcu_lock; > > >> spinlock_t rxbuflock; > > >> struct list_head rxbuf; > > >> struct ath_descdma rxdma; > > >> diff --git a/drivers/net/wireless/ath/ath9k/main.c b/drivers/net/wireless/ath/ath9k/main.c > > >> index dcd94ba..37f18ef 100644 > > >> --- a/drivers/net/wireless/ath/ath9k/main.c > > >> +++ b/drivers/net/wireless/ath/ath9k/main.c > > >> @@ -609,7 +609,7 @@ void ath9k_tasklet(unsigned long data) > > >> rxmask = (ATH9K_INT_RX | ATH9K_INT_RXEOL | ATH9K_INT_RXORN); > > >> > > >> if (status & rxmask) { > > >> - spin_lock_bh(&sc->rx.rxflushlock); > > >> + spin_lock_bh(&sc->rx.pcu_lock); > > > no need to disable bh as you are already in tasklet. I understand that the > > > existing code itself was doing this and I thought of fixing that anyway. > > > Can you plese fix this as well with this patch? > > > > Nah, I rather this be a separate patch, which you can test and send yourself :) > Since we are sending this to stable, I thought we can send a clean patch. Hrm. Have you tested it? Luis -- To unsubscribe from this list: send the line "unsubscribe linux-wireless" in the body of a message to majordomo@xxxxxxxxxxxxxxx More majordomo info at http://vger.kernel.org/majordomo-info.html