forked from Minki/linux
[SUNGEM]: Fix NAPI assertion failure.
As reported by Johannes Berg: I started getting this warning with recent kernels: [ 773.908927] ------------[ cut here ]------------ [ 773.908954] Badness at net/core/dev.c:2204 ... If we loop more than once in gem_poll(), we'll use more than the real budget in our gem_rx() calls, thus eventually trigger the caller's assertions in net_rx_action(). Subtract "work_done" from "budget" for the second arg to gem_rx() to fix the bug. Signed-off-by: David S. Miller <davem@davemloft.net>
This commit is contained in:
parent
2572c149a2
commit
da990a2402
@ -912,7 +912,7 @@ static int gem_poll(struct napi_struct *napi, int budget)
|
||||
* rx ring - must call napi_disable(), which
|
||||
* schedule_timeout()'s if polling is already disabled.
|
||||
*/
|
||||
work_done += gem_rx(gp, budget);
|
||||
work_done += gem_rx(gp, budget - work_done);
|
||||
|
||||
if (work_done >= budget)
|
||||
return work_done;
|
||||
|
Loading…
Reference in New Issue
Block a user