Add an extra check to be sure we never process the self-linked rx descriptor at the end of the list. This should not happen since in this case the RXDP should also point at the same descriptor and the previous check should catch that. But we don't trust RXDP completely (might it be NULL or undefined at some times?), so it's better to add an extra check.
Signed-off-by: Bruno Randolf <b...@einfach.org> --- drivers/net/wireless/ath/ath5k/base.c | 4 ++++ 1 files changed, 4 insertions(+), 0 deletions(-) diff --git a/drivers/net/wireless/ath/ath5k/base.c b/drivers/net/wireless/ath/ath5k/base.c index 7e14eb6..50d071c 100644 --- a/drivers/net/wireless/ath/ath5k/base.c +++ b/drivers/net/wireless/ath/ath5k/base.c @@ -1933,6 +1933,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; + ret = sc->ah->ah_proc_rx_desc(sc->ah, ds, &rs); if (unlikely(ret == -EINPROGRESS)) break; _______________________________________________ ath5k-devel mailing list ath5k-devel@lists.ath5k.org https://lists.ath5k.org/mailman/listinfo/ath5k-devel