diff options
author | Luis R. Rodriguez <lrodriguez@atheros.com> | 2009-03-23 18:25:01 -0400 |
---|---|---|
committer | John W. Linville <linville@tuxdriver.com> | 2009-03-27 20:13:19 -0400 |
commit | 051b919188650fe4c93ca8701183ae88439388f6 (patch) | |
tree | bfb524a026a3b4b3fa24010fedde65440fd68d86 /drivers/net/wireless | |
parent | 14344b81ec264efbe59de0183f5ba38650a479a6 (diff) |
ath9k: fix dma mapping leak of rx buffer upon rmmod
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>
Diffstat (limited to 'drivers/net/wireless')
-rw-r--r-- | drivers/net/wireless/ath9k/recv.c | 7 |
1 files changed, 6 insertions, 1 deletions
diff --git a/drivers/net/wireless/ath9k/recv.c b/drivers/net/wireless/ath9k/recv.c index 917bac7af6f..71cb18d6757 100644 --- a/drivers/net/wireless/ath9k/recv.c +++ b/drivers/net/wireless/ath9k/recv.c | |||
@@ -344,8 +344,13 @@ void ath_rx_cleanup(struct ath_softc *sc) | |||
344 | 344 | ||
345 | list_for_each_entry(bf, &sc->rx.rxbuf, list) { | 345 | list_for_each_entry(bf, &sc->rx.rxbuf, list) { |
346 | skb = bf->bf_mpdu; | 346 | skb = bf->bf_mpdu; |
347 | if (skb) | 347 | if (skb) { |
348 | dma_unmap_single(sc->dev, | ||
349 | bf->bf_buf_addr, | ||
350 | sc->rx.bufsize, | ||
351 | DMA_FROM_DEVICE); | ||
348 | dev_kfree_skb(skb); | 352 | dev_kfree_skb(skb); |
353 | } | ||
349 | } | 354 | } |
350 | 355 | ||
351 | if (sc->rx.rxdma.dd_desc_len != 0) | 356 | if (sc->rx.rxdma.dd_desc_len != 0) |