Commit 39d63f2a authored by Bruno Randolf's avatar Bruno Randolf Committed by John W. Linville
Browse files

ath5k: reset more pointers after we free skbs



After we free skbs for receive or transmit descriptors, make sure we have no
pointers to the now invalid memory address.

Signed-off-by: default avatarBruno Randolf <br1@einfach.org>
Acked-by: default avatarBob Copeland <me@bobcopeland.com>
Signed-off-by: default avatarJohn W. Linville <linville@tuxdriver.com>
parent 0452d4a5
Loading
Loading
Loading
Loading
+7 −0
Original line number Original line Diff line number Diff line
@@ -322,6 +322,8 @@ static inline void ath5k_txbuf_free_skb(struct ath5k_softc *sc,
			PCI_DMA_TODEVICE);
			PCI_DMA_TODEVICE);
	dev_kfree_skb_any(bf->skb);
	dev_kfree_skb_any(bf->skb);
	bf->skb = NULL;
	bf->skb = NULL;
	bf->skbaddr = 0;
	bf->desc->ds_data = 0;
}
}


static inline void ath5k_rxbuf_free_skb(struct ath5k_softc *sc,
static inline void ath5k_rxbuf_free_skb(struct ath5k_softc *sc,
@@ -337,6 +339,8 @@ static inline void ath5k_rxbuf_free_skb(struct ath5k_softc *sc,
			PCI_DMA_FROMDEVICE);
			PCI_DMA_FROMDEVICE);
	dev_kfree_skb_any(bf->skb);
	dev_kfree_skb_any(bf->skb);
	bf->skb = NULL;
	bf->skb = NULL;
	bf->skbaddr = 0;
	bf->desc->ds_data = 0;
}
}




@@ -1455,9 +1459,12 @@ ath5k_desc_free(struct ath5k_softc *sc, struct pci_dev *pdev)


	/* Free memory associated with all descriptors */
	/* Free memory associated with all descriptors */
	pci_free_consistent(pdev, sc->desc_len, sc->desc, sc->desc_daddr);
	pci_free_consistent(pdev, sc->desc_len, sc->desc, sc->desc_daddr);
	sc->desc = NULL;
	sc->desc_daddr = 0;


	kfree(sc->bufptr);
	kfree(sc->bufptr);
	sc->bufptr = NULL;
	sc->bufptr = NULL;
	sc->bbuf = NULL;
}
}