2009-03-31 23:27:30

by Chris Wright

[permalink] [raw]
Subject: [patch 18/45] ath9k: fix dma mapping leak of rx buffer upon rmmod

-stable review patch. If anyone has any objections, please let us know.
---------------------

From: Luis R. Rodriguez <[email protected]>

upstream commit: 051b919188650fe4c93ca8701183ae88439388f6

We were claiming DMA buffers on the RX tasklet but never
upon a simple module removal.

Cc: [email protected]
Signed-off-by: FUJITA Tomonori <[email protected]>
Signed-off-by: Luis R. Rodriguez <[email protected]>
Signed-off-by: John W. Linville <[email protected]>
[chrisw: backport to 2.6.29]
Signed-off-by: Chris Wright <[email protected]>
---
drivers/net/wireless/ath9k/recv.c | 7 ++++++-
1 file changed, 6 insertions(+), 1 deletion(-)

--- 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)