On Tue, May 25, 2010 at 11:04 PM, Bruno Randolf <b...@einfach.org> wrote: > please try this patch and tell us if it helped... > > bruno > > commit 0379d1e5a850f8e63832516af4245b9824d8623d > Author: Bruno Randolf <b...@einfach.org> > Date: Wed May 26 11:58:11 2010 +0900 > > ath5k: better checks for rx descriptor processing > > - add check not to process self-linked rx descriptor at the end > - add DMA sync > > diff --git a/drivers/net/wireless/ath/ath5k/base.c > b/drivers/net/wireless/ath/ath5k/base.c > index 4ea31dc..db63789 100644 > --- a/drivers/net/wireless/ath/ath5k/base.c > +++ b/drivers/net/wireless/ath/ath5k/base.c > @@ -1948,6 +1948,10 @@ ath5k_tasklet_rx(unsigned long data) > if (ath5k_hw_get_rxdp(sc->ah) == bf->daddr) > break; > > + /* never process the self-linked entry at the end */ > + if (ds->ds_link == bf->daddr) > + break; > +
By this you're saying that the RXDP check just above is insufficient? Also, what happens if only one packet is received? > + pci_dma_sync_single_for_cpu(sc->pdev, bf->skbaddr, > + rs.rs_datalen, > PCI_DMA_FROMDEVICE); My reading of DMA api howto claims this isn't necessary as long as we only touch data after unmapping it. -- Bob Copeland %% www.bobcopeland.com _______________________________________________ ath5k-devel mailing list ath5k-devel@lists.ath5k.org https://lists.ath5k.org/mailman/listinfo/ath5k-devel