diff options
Diffstat (limited to 'package/mac80211/patches/320-rx_dma_unmap.patch')
-rw-r--r-- | package/mac80211/patches/320-rx_dma_unmap.patch | 37 |
1 files changed, 0 insertions, 37 deletions
diff --git a/package/mac80211/patches/320-rx_dma_unmap.patch b/package/mac80211/patches/320-rx_dma_unmap.patch deleted file mode 100644 index a22320a..0000000 --- a/package/mac80211/patches/320-rx_dma_unmap.patch +++ /dev/null @@ -1,37 +0,0 @@ -When freeing rx dma descriptors, use the right buffer size. -Fixes kernel oopses on module unload on ixp4xx and most likely -other platforms as well. - -Signed-off-by: Felix Fietkau <nbd@openwrt.org> - ---- a/drivers/net/wireless/ath5k/base.c -+++ b/drivers/net/wireless/ath5k/base.c -@@ -310,6 +310,19 @@ static inline void ath5k_txbuf_free(stru - bf->skb = NULL; - } - -+static inline void ath5k_rxbuf_free(struct ath5k_softc *sc, -+ struct ath5k_buf *bf) -+{ -+ BUG_ON(!bf); -+ if (!bf->skb) -+ return; -+ pci_unmap_single(sc->pdev, bf->skbaddr, sc->rxbufsize, -+ PCI_DMA_FROMDEVICE); -+ dev_kfree_skb_any(bf->skb); -+ bf->skb = NULL; -+} -+ -+ - /* Queues setup */ - static struct ath5k_txq *ath5k_txq_setup(struct ath5k_softc *sc, - int qtype, int subtype); -@@ -1343,7 +1356,7 @@ ath5k_desc_free(struct ath5k_softc *sc, - list_for_each_entry(bf, &sc->txbuf, list) - ath5k_txbuf_free(sc, bf); - list_for_each_entry(bf, &sc->rxbuf, list) -- ath5k_txbuf_free(sc, bf); -+ ath5k_rxbuf_free(sc, bf); - - /* Free memory associated with all descriptors */ - pci_free_consistent(pdev, sc->desc_len, sc->desc, sc->desc_daddr); |