diff options
author | Luis R. Rodriguez <lrodriguez@atheros.com> | 2010-10-20 19:07:08 -0400 |
---|---|---|
committer | John W. Linville <linville@tuxdriver.com> | 2010-11-15 13:24:18 -0500 |
commit | 78a7685e1e44c6d4b6f79c73687b9322e40b040e (patch) | |
tree | 789fb85707a9528d2d5d6e224affec599d31a9dd /drivers/net/wireless/ath | |
parent | b87b0128894efd3bbf7272a579f71b3a2bc500d1 (diff) |
ath9k: add a debug warning when we cannot stop RX
We have seen several DMA races when we race against
stopping and starting the PCU. I suspect that when
we cannot stop the PCU we may hit some of these same
races so warn against them for now but only when
debugging (CONFIG_ATH_DEBUG) is enabled.
If you run into this warning and are a developer,
please fix the cause of the warning. The potential
here, although I cannot prove yet, is that the DMA
engine can be confused and start writing to a buffer
that was already DMA'd before and at least the kernel
assumes is not being accessed by hardware anymore.
Cc: Ben Greear <greearb@candelatech.com>
Cc: Kyungwan Nam <kyungwan.nam@atheros.com>
Signed-off-by: Luis R. Rodriguez <lrodriguez@atheros.com>
Signed-off-by: John W. Linville <linville@tuxdriver.com>
Diffstat (limited to 'drivers/net/wireless/ath')
-rw-r--r-- | drivers/net/wireless/ath/ath9k/recv.c | 2 |
1 files changed, 2 insertions, 0 deletions
diff --git a/drivers/net/wireless/ath/ath9k/recv.c b/drivers/net/wireless/ath/ath9k/recv.c index c04a940550bd..87fabf84e6fb 100644 --- a/drivers/net/wireless/ath/ath9k/recv.c +++ b/drivers/net/wireless/ath/ath9k/recv.c | |||
@@ -528,6 +528,8 @@ bool ath_stoprecv(struct ath_softc *sc) | |||
528 | sc->rx.rxlink = NULL; | 528 | sc->rx.rxlink = NULL; |
529 | spin_unlock_bh(&sc->rx.rxbuflock); | 529 | spin_unlock_bh(&sc->rx.rxbuflock); |
530 | 530 | ||
531 | ATH_DBG_WARN(!stopped, "Could not stop RX, we could be " | ||
532 | "confusing the DMA engine when we start RX up\n"); | ||
531 | return stopped; | 533 | return stopped; |
532 | } | 534 | } |
533 | 535 | ||