ath9k: fix invalid descriptor discarding
authorFelix Fietkau <nbd@openwrt.org>
Mon, 24 Feb 2014 21:26:06 +0000 (22:26 +0100)
committerJiri Slaby <jslaby@suse.cz>
Sat, 22 Mar 2014 21:01:50 +0000 (22:01 +0100)
commitde724a52f8c47366f706206080a35f6592492d4c
treef5f0b3c478081cdb8314d989be00c0f9bd76f1a4
parent7f60220d325b42104f40a4bec8457f3f63da8dd4
ath9k: fix invalid descriptor discarding

commit b7b146c9c9a0248cc57da71244f672ebc54bbef1 upstream.

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"

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>
Signed-off-by: Jiri Slaby <jslaby@suse.cz>
drivers/net/wireless/ath/ath9k/recv.c