ath9k: add a recv budget
authorTim Harvey <tharvey@gateworks.com>
Mon, 21 Apr 2014 23:14:57 +0000 (16:14 -0700)
committerJohn W. Linville <linville@tuxdriver.com>
Tue, 22 Apr 2014 18:09:37 +0000 (14:09 -0400)
commitc82552c5b0cb1735dbcbad78b1ffc6d3c212dc56
treea788914c98510b2db67c78d411e1a8e97f09f187
parent3a758134e66ca74a9df792616b5288b2fa2cfd7f
ath9k: add a recv budget

Implement a recv budget so that in cases of high traffic we still allow other
taskets to get processed.

Without this, we can encounter a host of issues during high wireless traffic
reception depending on system load including rcu stall's detected (ARM),
soft lockups, failure to service critical tasks such as watchdog resets,
and triggering of the tx stuck tasklet.

The same thing was proposed previously by Ben:
 http://www.spinics.net/lists/linux-wireless/msg112891.html

The only difference here is that I make sure only processed packets are counted
in the budget by checking at the end of the rx loop.

Signed-off-by: Tim Harvey <tharvey@gateworks.com>
Acked-by: Felix Fietkau <nbd@openwrt.org>
Signed-off-by: John W. Linville <linville@tuxdriver.com>
drivers/net/wireless/ath/ath9k/recv.c