net: enqueue_to_backlog() cleanup
authorEric Dumazet <edumazet@google.com>
Fri, 29 Mar 2024 15:42:22 +0000 (15:42 +0000)
committerDavid S. Miller <davem@davemloft.net>
Mon, 1 Apr 2024 10:28:32 +0000 (11:28 +0100)
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>
net/core/dev.c

index 02c98f115243202c409ee00c16e08fb0cf4d9ab9..0a8ccb0451c30a39f8f8b45d26b7e5548b8bfba4 100644 (file)
@@ -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);