diff options
author | David S. Miller <davem@davemloft.net> | 2008-12-15 23:03:50 -0500 |
---|---|---|
committer | David S. Miller <davem@davemloft.net> | 2008-12-15 23:03:50 -0500 |
commit | eb14f019597cd86c21a6c601d7e900f40030c2e7 (patch) | |
tree | 36fb2f36a1747f98988f87215db1eef3a71d45eb /include/linux/netdevice.h | |
parent | 9a4a84294b0d60b8c287131478f743ba2bc68949 (diff) | |
parent | a3dd15444baa9c7522c8457ab564c41219dfb44c (diff) |
Merge branch 'master' of master.kernel.org:/pub/scm/linux/kernel/git/davem/net-2.6
Conflicts:
drivers/net/e1000e/ich8lan.c
Diffstat (limited to 'include/linux/netdevice.h')
-rw-r--r-- | include/linux/netdevice.h | 7 |
1 files changed, 7 insertions, 0 deletions
diff --git a/include/linux/netdevice.h b/include/linux/netdevice.h index 47e731528315..b60c26b7d31c 100644 --- a/include/linux/netdevice.h +++ b/include/linux/netdevice.h | |||
@@ -322,6 +322,7 @@ enum | |||
322 | { | 322 | { |
323 | NAPI_STATE_SCHED, /* Poll is scheduled */ | 323 | NAPI_STATE_SCHED, /* Poll is scheduled */ |
324 | NAPI_STATE_DISABLE, /* Disable pending */ | 324 | NAPI_STATE_DISABLE, /* Disable pending */ |
325 | NAPI_STATE_NPSVC, /* Netpoll - don't dequeue from poll_list */ | ||
325 | }; | 326 | }; |
326 | 327 | ||
327 | extern void __napi_schedule(struct napi_struct *n); | 328 | extern void __napi_schedule(struct napi_struct *n); |
@@ -1622,6 +1623,12 @@ static inline void netif_rx_complete(struct net_device *dev, | |||
1622 | { | 1623 | { |
1623 | unsigned long flags; | 1624 | unsigned long flags; |
1624 | 1625 | ||
1626 | /* | ||
1627 | * don't let napi dequeue from the cpu poll list | ||
1628 | * just in case its running on a different cpu | ||
1629 | */ | ||
1630 | if (unlikely(test_bit(NAPI_STATE_NPSVC, &napi->state))) | ||
1631 | return; | ||
1625 | local_irq_save(flags); | 1632 | local_irq_save(flags); |
1626 | __netif_rx_complete(dev, napi); | 1633 | __netif_rx_complete(dev, napi); |
1627 | local_irq_restore(flags); | 1634 | local_irq_restore(flags); |