summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorHauke Mehrtens <hauke@hauke-m.de>2019-06-24 21:41:47 +0200
committerHauke Mehrtens <hauke@hauke-m.de>2019-07-06 11:47:22 +0200
commit381f4e96fb45671f2c211c8a67051f47e1c07b83 (patch)
treec955e3a846f16e329eaf34878d9a85d20f619f5a
parent6e4512cd5c5b8dbc6fd94631bd806f564aed4195 (diff)
header: Make napi_complete_done() return bool
In the current kernel napi_complete_done() returns a bool and this is now used by the mt76 driver. Try to backport this functionality by doing the check which makes the function return false already in backports. This was added in upstream kernel commit 364b6055738b ("net: busy-poll: return busypolling status to drivers") Signed-off-by: Hauke Mehrtens <hauke@hauke-m.de>
-rw-r--r--backport/backport-include/linux/netdevice.h16
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)