ath9k: fix invalid descriptor discarding
authorFelix Fietkau <nbd@openwrt.org>
Mon, 24 Feb 2014 21:26:06 +0000 (22:26 +0100)
committerJohn W. Linville <linville@tuxdriver.com>
Tue, 25 Feb 2014 19:54:11 +0000 (14:54 -0500)
commitb7b146c9c9a0248cc57da71244f672ebc54bbef1
treec08be095b4713f0bf514e555a330195a9ca2b043
parentd31a36a6d87f68c3b97193bfca11e99d0cc385f7
ath9k: fix invalid descriptor discarding

Only set sc->rx.discard_next to rx_stats->rs_more when actually
discarding the current descriptor.

Also, fix a detection of broken descriptors:
First the code checks if the current descriptor is not done.
Then it checks if the next descriptor is done.
Add a check that afterwards checks the first descriptor again, because
it might have been completed in the mean time.

This fixes a regression introduced in
commit 723e711356b5a8a95728a890e254e8b0d47b55cf
"ath9k: fix handling of broken descriptors"

Cc: stable@vger.kernel.org
Reported-by: Marco André Dinis <marcoandredinis@gmail.com>
Signed-off-by: Felix Fietkau <nbd@openwrt.org>
Signed-off-by: John W. Linville <linville@tuxdriver.com>
drivers/net/wireless/ath/ath9k/recv.c