summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorLuis R. Rodriguez <lrodriguez@atheros.com>2009-03-28 01:45:02 +0000
committerChris Wright <chrisw@sous-sol.org>2009-04-02 13:55:16 -0700
commitfb2d617e4b8ac0a2c07643a3a6299409692f8003 (patch)
treeeac8847ef428f0a79d7ac5f02170cc183f40773d
parent8bc20526fc862d18997fd6f267a985d428fbc6e5 (diff)
ath9k: fix dma mapping leak of rx buffer upon rmmod
upstream commit: 051b919188650fe4c93ca8701183ae88439388f6 We were claiming DMA buffers on the RX tasklet but never upon a simple module removal. Cc: stable@kernel.org Signed-off-by: FUJITA Tomonori <fujita.tomonori@lab.ntt.co.jp> Signed-off-by: Luis R. Rodriguez <lrodriguez@atheros.com> Signed-off-by: John W. Linville <linville@tuxdriver.com> [chrisw: backport to 2.6.29] Signed-off-by: Chris Wright <chrisw@sous-sol.org>
-rw-r--r--drivers/net/wireless/ath9k/recv.c7
1 files changed, 6 insertions, 1 deletions
diff --git a/drivers/net/wireless/ath9k/recv.c b/drivers/net/wireless/ath9k/recv.c
index 462e08c3d09d..c114cb7c2406 100644
--- a/drivers/net/wireless/ath9k/recv.c
+++ b/drivers/net/wireless/ath9k/recv.c
@@ -322,8 +322,13 @@ void ath_rx_cleanup(struct ath_softc *sc)
list_for_each_entry(bf, &sc->rx.rxbuf, list) {
skb = bf->bf_mpdu;
- if (skb)
+ if (skb) {
+ pci_unmap_single(sc->pdev,
+ bf->bf_buf_addr,
+ sc->rx.bufsize,
+ DMA_FROM_DEVICE);
dev_kfree_skb(skb);
+ }
}
if (sc->rx.rxdma.dd_desc_len != 0)