mirror of
https://mirrors.bfsu.edu.cn/git/linux.git
synced 2024-11-11 21:38:32 +08:00
[NET] napi: Call __netif_rx_complete in netif_rx_complete
This patch kills a little bit of code duplication between the two variants of netif_rx_complete. Signed-off-by: Herbert Xu <herbert@gondor.apana.org.au> Signed-off-by: David S. Miller <davem@davemloft.net>
This commit is contained in:
parent
e4fd5da39f
commit
b0ba66671a
@ -910,6 +910,17 @@ static inline int netif_rx_reschedule(struct net_device *dev, int undo)
|
||||
return 0;
|
||||
}
|
||||
|
||||
/* same as netif_rx_complete, except that local_irq_save(flags)
|
||||
* has already been issued
|
||||
*/
|
||||
static inline void __netif_rx_complete(struct net_device *dev)
|
||||
{
|
||||
BUG_ON(!test_bit(__LINK_STATE_RX_SCHED, &dev->state));
|
||||
list_del(&dev->poll_list);
|
||||
smp_mb__before_clear_bit();
|
||||
clear_bit(__LINK_STATE_RX_SCHED, &dev->state);
|
||||
}
|
||||
|
||||
/* Remove interface from poll list: it must be in the poll list
|
||||
* on current cpu. This primitive is called by dev->poll(), when
|
||||
* it completes the work. The device cannot be out of poll list at this
|
||||
@ -920,10 +931,7 @@ static inline void netif_rx_complete(struct net_device *dev)
|
||||
unsigned long flags;
|
||||
|
||||
local_irq_save(flags);
|
||||
BUG_ON(!test_bit(__LINK_STATE_RX_SCHED, &dev->state));
|
||||
list_del(&dev->poll_list);
|
||||
smp_mb__before_clear_bit();
|
||||
clear_bit(__LINK_STATE_RX_SCHED, &dev->state);
|
||||
__netif_rx_complete(dev);
|
||||
local_irq_restore(flags);
|
||||
}
|
||||
|
||||
@ -940,17 +948,6 @@ static inline void netif_poll_enable(struct net_device *dev)
|
||||
clear_bit(__LINK_STATE_RX_SCHED, &dev->state);
|
||||
}
|
||||
|
||||
/* same as netif_rx_complete, except that local_irq_save(flags)
|
||||
* has already been issued
|
||||
*/
|
||||
static inline void __netif_rx_complete(struct net_device *dev)
|
||||
{
|
||||
BUG_ON(!test_bit(__LINK_STATE_RX_SCHED, &dev->state));
|
||||
list_del(&dev->poll_list);
|
||||
smp_mb__before_clear_bit();
|
||||
clear_bit(__LINK_STATE_RX_SCHED, &dev->state);
|
||||
}
|
||||
|
||||
static inline void netif_tx_lock(struct net_device *dev)
|
||||
{
|
||||
spin_lock(&dev->_xmit_lock);
|
||||
|
Loading…
Reference in New Issue
Block a user