diff options
author | Eric Dumazet <edumazet@google.com> | 2024-03-29 16:42:22 +0100 |
---|---|---|
committer | David S. Miller <davem@davemloft.net> | 2024-04-01 12:28:32 +0200 |
commit | f7efd01fe21431a98677e5505e5de46649121ca7 (patch) | |
tree | 1f12a32c513cf5faa2e2f618135252bf257c8c89 /net/core/dev.c | |
parent | net: make softnet_data.dropped an atomic_t (diff) | |
download | linux-f7efd01fe21431a98677e5505e5de46649121ca7.tar.xz linux-f7efd01fe21431a98677e5505e5de46649121ca7.zip |
net: enqueue_to_backlog() cleanup
We can remove a goto and a label by reversing a condition.
Signed-off-by: Eric Dumazet <edumazet@google.com>
Signed-off-by: David S. Miller <davem@davemloft.net>
Diffstat (limited to '')
-rw-r--r-- | net/core/dev.c | 24 |
1 files changed, 11 insertions, 13 deletions
diff --git a/net/core/dev.c b/net/core/dev.c index 02c98f115243..0a8ccb0451c3 100644 --- a/net/core/dev.c +++ b/net/core/dev.c @@ -4816,20 +4816,18 @@ static int enqueue_to_backlog(struct sk_buff *skb, int cpu, backlog_lock_irq_save(sd, &flags); qlen = skb_queue_len(&sd->input_pkt_queue); if (qlen <= max_backlog && !skb_flow_limit(skb, qlen)) { - if (qlen) { -enqueue: - __skb_queue_tail(&sd->input_pkt_queue, skb); - input_queue_tail_incr_save(sd, qtail); - backlog_unlock_irq_restore(sd, &flags); - return NET_RX_SUCCESS; + if (!qlen) { + /* Schedule NAPI for backlog device. We can use + * non atomic operation as we own the queue lock. + */ + if (!__test_and_set_bit(NAPI_STATE_SCHED, + &sd->backlog.state)) + napi_schedule_rps(sd); } - - /* Schedule NAPI for backlog device - * We can use non atomic operation since we own the queue lock - */ - if (!__test_and_set_bit(NAPI_STATE_SCHED, &sd->backlog.state)) - napi_schedule_rps(sd); - goto enqueue; + __skb_queue_tail(&sd->input_pkt_queue, skb); + input_queue_tail_incr_save(sd, qtail); + backlog_unlock_irq_restore(sd, &flags); + return NET_RX_SUCCESS; } backlog_unlock_irq_restore(sd, &flags); |