diff options
Diffstat (limited to 'backport/backport-include/linux/netdevice.h')
-rw-r--r-- | backport/backport-include/linux/netdevice.h | 16 |
1 files changed, 12 insertions, 4 deletions
diff --git a/backport/backport-include/linux/netdevice.h b/backport/backport-include/linux/netdevice.h index c3e91a0c..76b57e4d 100644 --- a/backport/backport-include/linux/netdevice.h +++ b/backport/backport-include/linux/netdevice.h @@ -289,13 +289,21 @@ static inline void u64_stats_init(struct u64_stats_sync *syncp) }) #endif /* netdev_alloc_pcpu_stats */ -#if LINUX_VERSION_IS_LESS(3,19,0) -#define napi_complete_done LINUX_BACKPORT(napi_complete_done) -static inline void napi_complete_done(struct napi_struct *n, int work_done) +#if LINUX_VERSION_IS_LESS(4,10,0) +static inline bool backport_napi_complete_done(struct napi_struct *n, int work_done) { + if (unlikely(test_bit(NAPI_STATE_NPSVC, &n->state))) + return false; + +#if LINUX_VERSION_IS_LESS(3,19,0) napi_complete(n); -} +#else + napi_complete_done(n, work_done); #endif /* < 3.19 */ + return true; +} +#define napi_complete_done LINUX_BACKPORT(napi_complete_done) +#endif /* < 4.10 */ #if LINUX_VERSION_IS_LESS(4,5,0) #define netif_tx_napi_add LINUX_BACKPORT(netif_tx_napi_add) |