2009/1/30 Felix Fietkau <nbd@xxxxxxxxxxx>: > 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@xxxxxxxxxxx> > > --- a/drivers/net/wireless/ath5k/base.c > +++ b/drivers/net/wireless/ath5k/base.c > @@ -308,6 +308,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); > @@ -1341,7 +1354,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); > Acked-by: Nick Kossifidis <mickflemm@xxxxxxxxx> -- GPG ID: 0xD21DB2DB As you read this post global entropy rises. Have Fun ;-) Nick -- To unsubscribe from this list: send the line "unsubscribe linux-wireless" in the body of a message to majordomo@xxxxxxxxxxxxxxx More majordomo info at http://vger.kernel.org/majordomo-info.html