aboutsummaryrefslogtreecommitdiffstats
path: root/include/linux
diff options
context:
space:
mode:
authorDavid S. Miller <davem@davemloft.net>2008-01-07 23:26:59 -0500
committerDavid S. Miller <davem@davemloft.net>2008-01-09 02:30:07 -0500
commitbdb95b1792664f25eb2a4d13a587d2020aa93002 (patch)
tree88b7fc6bc396294417e2e34352039214a0192509 /include/linux
parentd987160b710c98997015832422a05e18d9f0f925 (diff)
[NET]: Do not grab device reference when scheduling a NAPI poll.
It is pointless, because everything that can make a device go away will do a napi_disable() first. The main impetus behind this is that now we can legally do a NAPI completion in generic code like net_rx_action() which a following changeset needs to do. net_rx_action() can only perform actions in NAPI centric ways, because there may be a one to many mapping between NAPI contexts and network devices (SKY2 is one example). We also want to get rid of this because it's an extra atomic in the NAPI paths, and also because it is one of the last instances where the NAPI interfaces care about net devices. The one remaining netdev detail the NAPI stuff cares about is the netif_running() check which will be killed off in a subsequent changeset. Signed-off-by: David S. Miller <davem@davemloft.net>
Diffstat (limited to 'include/linux')
-rw-r--r--include/linux/netdevice.h2
1 files changed, 0 insertions, 2 deletions
diff --git a/include/linux/netdevice.h b/include/linux/netdevice.h
index 1e6af4f174b6..e393995d283a 100644
--- a/include/linux/netdevice.h
+++ b/include/linux/netdevice.h
@@ -1277,7 +1277,6 @@ static inline int netif_rx_schedule_prep(struct net_device *dev,
1277static inline void __netif_rx_schedule(struct net_device *dev, 1277static inline void __netif_rx_schedule(struct net_device *dev,
1278 struct napi_struct *napi) 1278 struct napi_struct *napi)
1279{ 1279{
1280 dev_hold(dev);
1281 __napi_schedule(napi); 1280 __napi_schedule(napi);
1282} 1281}
1283 1282
@@ -1308,7 +1307,6 @@ static inline void __netif_rx_complete(struct net_device *dev,
1308 struct napi_struct *napi) 1307 struct napi_struct *napi)
1309{ 1308{
1310 __napi_complete(napi); 1309 __napi_complete(napi);
1311 dev_put(dev);
1312} 1310}
1313 1311
1314/* Remove interface from poll list: it must be in the poll list 1312/* Remove interface from poll list: it must be in the poll list