netpoll: Add netpoll_tx_running
This patch adds the helper netpoll_tx_running for use within ndo_start_xmit. It returns non-zero if ndo_start_xmit is being invoked by netpoll, and zero otherwise. This is currently implemented by simply looking at the hardirq count. This is because for all non-netpoll uses of ndo_start_xmit, IRQs must be enabled while netpoll always disables IRQs before calling ndo_start_xmit. Signed-off-by: Herbert Xu <herbert@gondor.apana.org.au> Signed-off-by: David S. Miller <davem@davemloft.net>
This commit is contained in:
committed by
David S. Miller
parent
8fdd95ec16
commit
c18370f5b2
@@ -116,6 +116,11 @@ static inline void netpoll_poll_unlock(void *have)
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
static inline int netpoll_tx_running(struct net_device *dev)
|
||||||
|
{
|
||||||
|
return irqs_disabled();
|
||||||
|
}
|
||||||
|
|
||||||
#else
|
#else
|
||||||
static inline int netpoll_rx(struct sk_buff *skb)
|
static inline int netpoll_rx(struct sk_buff *skb)
|
||||||
{
|
{
|
||||||
@@ -139,6 +144,10 @@ static inline void netpoll_poll_unlock(void *have)
|
|||||||
static inline void netpoll_netdev_init(struct net_device *dev)
|
static inline void netpoll_netdev_init(struct net_device *dev)
|
||||||
{
|
{
|
||||||
}
|
}
|
||||||
|
static inline int netpoll_tx_running(struct net_device *dev)
|
||||||
|
{
|
||||||
|
return 0;
|
||||||
|
}
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
#endif
|
#endif
|
||||||
|
Reference in New Issue
Block a user