mirror of
https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git/
synced 2025-04-19 20:58:31 +09:00
net: use napi_id_valid helper
In commit 6597e8d35851 ("netdev-genl: Elide napi_id when not present"), napi_id_valid function was added. Use the helper to refactor open-coded checks in the source. Suggested-by: Paolo Abeni <pabeni@redhat.com> Signed-off-by: Stefano Jordhani <sjordhani@gmail.com> Reviewed-by: Joe Damato <jdamato@fastly.com> Reviewed-by: Jens Axboe <axboe@kernel.dk> # for iouring Link: https://patch.msgid.link/20250214181801.931-1-sjordhani@gmail.com Signed-off-by: Jakub Kicinski <kuba@kernel.org>
This commit is contained in:
parent
b706d9f068
commit
b9d752105e
@ -447,7 +447,7 @@ static bool ep_busy_loop(struct eventpoll *ep, int nonblock)
|
||||
if (!budget)
|
||||
budget = BUSY_POLL_BUDGET;
|
||||
|
||||
if (napi_id >= MIN_NAPI_ID && ep_busy_loop_on(ep)) {
|
||||
if (napi_id_valid(napi_id) && ep_busy_loop_on(ep)) {
|
||||
napi_busy_loop(napi_id, nonblock ? NULL : ep_busy_loop_end,
|
||||
ep, prefer_busy_poll, budget);
|
||||
if (ep_events_available(ep))
|
||||
@ -492,7 +492,7 @@ static inline void ep_set_busy_poll_napi_id(struct epitem *epi)
|
||||
* or
|
||||
* Nothing to do if we already have this ID
|
||||
*/
|
||||
if (napi_id < MIN_NAPI_ID || napi_id == ep->napi_id)
|
||||
if (!napi_id_valid(napi_id) || napi_id == ep->napi_id)
|
||||
return;
|
||||
|
||||
/* record NAPI ID for use in next busy poll */
|
||||
@ -546,7 +546,7 @@ static void ep_suspend_napi_irqs(struct eventpoll *ep)
|
||||
{
|
||||
unsigned int napi_id = READ_ONCE(ep->napi_id);
|
||||
|
||||
if (napi_id >= MIN_NAPI_ID && READ_ONCE(ep->prefer_busy_poll))
|
||||
if (napi_id_valid(napi_id) && READ_ONCE(ep->prefer_busy_poll))
|
||||
napi_suspend_irqs(napi_id);
|
||||
}
|
||||
|
||||
@ -554,7 +554,7 @@ static void ep_resume_napi_irqs(struct eventpoll *ep)
|
||||
{
|
||||
unsigned int napi_id = READ_ONCE(ep->napi_id);
|
||||
|
||||
if (napi_id >= MIN_NAPI_ID && READ_ONCE(ep->prefer_busy_poll))
|
||||
if (napi_id_valid(napi_id) && READ_ONCE(ep->prefer_busy_poll))
|
||||
napi_resume_irqs(napi_id);
|
||||
}
|
||||
|
||||
|
@ -119,7 +119,7 @@ static inline void sk_busy_loop(struct sock *sk, int nonblock)
|
||||
#ifdef CONFIG_NET_RX_BUSY_POLL
|
||||
unsigned int napi_id = READ_ONCE(sk->sk_napi_id);
|
||||
|
||||
if (napi_id >= MIN_NAPI_ID)
|
||||
if (napi_id_valid(napi_id))
|
||||
napi_busy_loop(napi_id, nonblock ? NULL : sk_busy_loop_end, sk,
|
||||
READ_ONCE(sk->sk_prefer_busy_poll),
|
||||
READ_ONCE(sk->sk_busy_poll_budget) ?: BUSY_POLL_BUDGET);
|
||||
@ -134,7 +134,7 @@ static inline void skb_mark_napi_id(struct sk_buff *skb,
|
||||
/* If the skb was already marked with a valid NAPI ID, avoid overwriting
|
||||
* it.
|
||||
*/
|
||||
if (skb->napi_id < MIN_NAPI_ID)
|
||||
if (!napi_id_valid(skb->napi_id))
|
||||
skb->napi_id = napi->napi_id;
|
||||
#endif
|
||||
}
|
||||
|
@ -44,7 +44,7 @@ int __io_napi_add_id(struct io_ring_ctx *ctx, unsigned int napi_id)
|
||||
struct io_napi_entry *e;
|
||||
|
||||
/* Non-NAPI IDs can be rejected. */
|
||||
if (napi_id < MIN_NAPI_ID)
|
||||
if (!napi_id_valid(napi_id))
|
||||
return -EINVAL;
|
||||
|
||||
hash_list = &ctx->napi_ht[hash_min(napi_id, HASH_BITS(ctx->napi_ht))];
|
||||
@ -87,7 +87,7 @@ static int __io_napi_del_id(struct io_ring_ctx *ctx, unsigned int napi_id)
|
||||
struct io_napi_entry *e;
|
||||
|
||||
/* Non-NAPI IDs can be rejected. */
|
||||
if (napi_id < MIN_NAPI_ID)
|
||||
if (!napi_id_valid(napi_id))
|
||||
return -EINVAL;
|
||||
|
||||
hash_list = &ctx->napi_ht[hash_min(napi_id, HASH_BITS(ctx->napi_ht))];
|
||||
|
@ -1008,7 +1008,7 @@ struct net_device *dev_get_by_napi_id(unsigned int napi_id)
|
||||
|
||||
WARN_ON_ONCE(!rcu_read_lock_held());
|
||||
|
||||
if (napi_id < MIN_NAPI_ID)
|
||||
if (!napi_id_valid(napi_id))
|
||||
return NULL;
|
||||
|
||||
napi = napi_by_id(napi_id);
|
||||
@ -6740,7 +6740,7 @@ static void napi_hash_add(struct napi_struct *napi)
|
||||
|
||||
/* 0..NR_CPUS range is reserved for sender_cpu use */
|
||||
do {
|
||||
if (unlikely(++napi_gen_id < MIN_NAPI_ID))
|
||||
if (unlikely(!napi_id_valid(++napi_gen_id)))
|
||||
napi_gen_id = MIN_NAPI_ID;
|
||||
} while (napi_by_id(napi_gen_id));
|
||||
|
||||
@ -6911,7 +6911,7 @@ netif_napi_dev_list_add(struct net_device *dev, struct napi_struct *napi)
|
||||
|
||||
higher = &dev->napi_list;
|
||||
list_for_each_entry(pos, &dev->napi_list, dev_list) {
|
||||
if (pos->napi_id >= MIN_NAPI_ID)
|
||||
if (napi_id_valid(pos->napi_id))
|
||||
pos_id = pos->napi_id;
|
||||
else if (pos->config)
|
||||
pos_id = pos->config->napi_id;
|
||||
|
@ -267,7 +267,7 @@ netdev_nl_napi_dump_one(struct net_device *netdev, struct sk_buff *rsp,
|
||||
|
||||
prev_id = UINT_MAX;
|
||||
list_for_each_entry(napi, &netdev->napi_list, dev_list) {
|
||||
if (napi->napi_id < MIN_NAPI_ID)
|
||||
if (!napi_id_valid(napi->napi_id))
|
||||
continue;
|
||||
|
||||
/* Dump continuation below depends on the list being sorted */
|
||||
|
@ -233,7 +233,7 @@ page_pool_nl_fill(struct sk_buff *rsp, const struct page_pool *pool,
|
||||
goto err_cancel;
|
||||
|
||||
napi_id = pool->p.napi ? READ_ONCE(pool->p.napi->napi_id) : 0;
|
||||
if (napi_id >= MIN_NAPI_ID &&
|
||||
if (napi_id_valid(napi_id) &&
|
||||
nla_put_uint(rsp, NETDEV_A_PAGE_POOL_NAPI_ID, napi_id))
|
||||
goto err_cancel;
|
||||
|
||||
|
@ -2042,7 +2042,7 @@ int sk_getsockopt(struct sock *sk, int level, int optname,
|
||||
v.val = READ_ONCE(sk->sk_napi_id);
|
||||
|
||||
/* aggregate non-NAPI IDs down to 0 */
|
||||
if (v.val < MIN_NAPI_ID)
|
||||
if (!napi_id_valid(v.val))
|
||||
v.val = 0;
|
||||
|
||||
break;
|
||||
|
@ -875,7 +875,7 @@ static bool xsk_no_wakeup(struct sock *sk)
|
||||
#ifdef CONFIG_NET_RX_BUSY_POLL
|
||||
/* Prefer busy-polling, skip the wakeup. */
|
||||
return READ_ONCE(sk->sk_prefer_busy_poll) && READ_ONCE(sk->sk_ll_usec) &&
|
||||
READ_ONCE(sk->sk_napi_id) >= MIN_NAPI_ID;
|
||||
napi_id_valid(READ_ONCE(sk->sk_napi_id));
|
||||
#else
|
||||
return false;
|
||||
#endif
|
||||
|
Loading…
x
Reference in New Issue
Block a user