Files
linux/include/linux
David S. Miller a0a46196cd [NET]: Add NAPI_STATE_DISABLE.
Create a bit to signal that a napi_disable() is in progress.

This sets up infrastructure such that net_rx_action() can generically
break out of the ->poll() loop on a NAPI context that has a pending
napi_disable() yet is being bombed with packets (and thus would
otherwise poll endlessly and not allow the napi_disable() to finish).

Now, what napi_disable() does is first set the NAPI_STATE_DISABLE bit
(to indicate that a disable is pending), then it polls for the
NAPI_STATE_SCHED bit, and once the NAPI_STATE_SCHED bit is acquired
the NAPI_STATE_DISABLE bit is cleared.  Here, the test_and_set_bit()
provides the necessary memory barrier between the various bitops.

napi_schedule_prep() now tests for a pending disable as it's first
action and won't try to obtain the NAPI_STATE_SCHED bit if a disable
is pending.

As a result, we can remove the netif_running() check in
netif_rx_schedule_prep() because the NAPI disable pending state serves
this purpose.  And, it does so in a NAPI centric manner which is what
we really want.

Signed-off-by: David S. Miller <davem@davemloft.net>
2008-01-08 23:30:07 -08:00
..
2007-12-26 19:36:35 -08:00
2007-12-17 20:33:12 -05:00
2007-11-19 21:43:22 -05:00
2007-12-20 17:32:12 +00:00
2007-10-29 07:41:32 -07:00
2007-11-29 09:24:54 -08:00
2007-11-15 19:24:02 +01:00
2007-12-05 05:37:32 -08:00
2007-11-05 15:12:32 -08:00
2007-12-26 19:36:35 -08:00
2007-11-29 09:24:52 -08:00
2008-01-08 16:10:35 -08:00
2007-12-07 09:06:53 +00:00
2007-10-25 15:02:50 +10:00
2007-10-25 15:02:50 +10:00
2007-12-17 20:43:28 -05:00
2008-01-08 23:30:07 -08:00
2007-11-07 04:15:12 -08:00
2007-12-12 20:01:00 +01:00
2007-12-05 09:21:20 -08:00
2007-11-29 09:24:54 -08:00
2007-11-27 09:30:39 +01:00
2007-11-29 09:24:53 -08:00
2008-01-02 13:04:48 -08:00
2008-01-02 13:04:48 -08:00
2008-01-02 13:04:48 -08:00
2007-11-09 22:39:38 +01:00
2007-11-26 20:42:19 +01:00
2008-01-08 16:16:34 -08:00
2007-10-29 07:41:33 -07:00
2007-12-17 10:47:15 -08:00
2007-12-26 19:36:35 -08:00