aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorDaniel Borkmann <daniel@iogearbox.net>2020-12-01 15:22:59 +0100
committerDaniel Borkmann <daniel@iogearbox.net>2020-12-01 15:51:19 +0100
commitba0581749fec389e55c9d761f2716f8fcbefced5 (patch)
tree2179cfeb9bec1ba39c25a9fe634be6a75d71ef30
parentMerge branch 'xdp-preferred-busy-polling' (diff)
downloadlinux-dev-ba0581749fec389e55c9d761f2716f8fcbefced5.tar.xz
linux-dev-ba0581749fec389e55c9d761f2716f8fcbefced5.zip
net, xdp, xsk: fix __sk_mark_napi_id_once napi_id error
Stephen reported the following build error for !CONFIG_NET_RX_BUSY_POLL built kernels: In file included from fs/select.c:32: include/net/busy_poll.h: In function 'sk_mark_napi_id_once': include/net/busy_poll.h:150:36: error: 'const struct sk_buff' has no member named 'napi_id' 150 | __sk_mark_napi_id_once_xdp(sk, skb->napi_id); | ^~ Fix it by wrapping a CONFIG_NET_RX_BUSY_POLL around the helpers. Fixes: b02e5a0ebb17 ("xsk: Propagate napi_id to XDP socket Rx path") Reported-by: Stephen Rothwell <sfr@canb.auug.org.au> Signed-off-by: Stephen Rothwell <sfr@canb.auug.org.au> Signed-off-by: Daniel Borkmann <daniel@iogearbox.net> Cc: Björn Töpel <bjorn.topel@intel.com> Link: https://lore.kernel.org/linux-next/20201201190746.7d3357fb@canb.auug.org.au
-rw-r--r--include/net/busy_poll.h10
1 files changed, 7 insertions, 3 deletions
diff --git a/include/net/busy_poll.h b/include/net/busy_poll.h
index 45b3e04b99d3..73af4a64a599 100644
--- a/include/net/busy_poll.h
+++ b/include/net/busy_poll.h
@@ -135,7 +135,7 @@ static inline void sk_mark_napi_id(struct sock *sk, const struct sk_buff *skb)
sk_rx_queue_set(sk, skb);
}
-static inline void __sk_mark_napi_id_once_xdp(struct sock *sk, unsigned int napi_id)
+static inline void __sk_mark_napi_id_once(struct sock *sk, unsigned int napi_id)
{
#ifdef CONFIG_NET_RX_BUSY_POLL
if (!READ_ONCE(sk->sk_napi_id))
@@ -147,13 +147,17 @@ static inline void __sk_mark_napi_id_once_xdp(struct sock *sk, unsigned int napi
static inline void sk_mark_napi_id_once(struct sock *sk,
const struct sk_buff *skb)
{
- __sk_mark_napi_id_once_xdp(sk, skb->napi_id);
+#ifdef CONFIG_NET_RX_BUSY_POLL
+ __sk_mark_napi_id_once(sk, skb->napi_id);
+#endif
}
static inline void sk_mark_napi_id_once_xdp(struct sock *sk,
const struct xdp_buff *xdp)
{
- __sk_mark_napi_id_once_xdp(sk, xdp->rxq->napi_id);
+#ifdef CONFIG_NET_RX_BUSY_POLL
+ __sk_mark_napi_id_once(sk, xdp->rxq->napi_id);
+#endif
}
#endif /* _LINUX_NET_BUSY_POLL_H */