[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)
commit6f535763165331bb91277d7519b507fed22034e5
tree1968a01affa1cce3a3199c455d1fe1ebdca3ff47
parentb08d6cb22c777c8c91c16d8e3b8aafc93c98cbd9
[NET]: Fix NAPI completion handling in some drivers.

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>
drivers/net/bnx2.c
drivers/net/sky2.c
drivers/net/tg3.c