[NET]: Fix NAPI completion handling in some drivers.
authorDavid S. Miller <davem@sunset.davemloft.net>
Fri, 12 Oct 2007 01:08:29 +0000 (18:08 -0700)
committerDavid S. Miller <davem@sunset.davemloft.net>
Fri, 12 Oct 2007 01:08:29 +0000 (18:08 -0700)
In order for the list handling in net_rx_action() to be
correct, drivers must follow certain rules as stated by
this comment in net_rx_action():

/* Drivers must not modify the NAPI state if they
 * consume the entire weight.  In such cases this code
 * still "owns" the NAPI instance and therefore can
 * move the instance around on the list at-will.
 */

A few drivers do not do this because they mix the budget checks
with reading hardware state, resulting in crashes like the one
reported by takano@axe-inc.co.jp.

BNX2 and TG3 are taken care of here, SKY2 fix is from Stephen
Hemminger.

Signed-off-by: David S. Miller <davem@davemloft.net>

No differences found