kernel: bump 5.15 to 5.15.146
[openwrt/staging/jow.git] / target / linux / generic / pending-5.15 / 760-net-core-add-optional-threading-for-backlog-processi.patch
index 685a11f22d545b2cd9479878d672277c300f570e..c8d0bc69f937838d6539bfde7cee44677b17530d 100644 (file)
@@ -30,7 +30,7 @@ Signed-off-by: Felix Fietkau <nbd@nbd.name>
  #endif
 --- a/net/core/dev.c
 +++ b/net/core/dev.c
-@@ -4583,7 +4583,7 @@ static int rps_ipi_queued(struct softnet
+@@ -4586,7 +4586,7 @@ static int rps_ipi_queued(struct softnet
  #ifdef CONFIG_RPS
        struct softnet_data *mysd = this_cpu_ptr(&softnet_data);
  
@@ -39,7 +39,7 @@ Signed-off-by: Felix Fietkau <nbd@nbd.name>
                sd->rps_ipi_next = mysd->rps_ipi_list;
                mysd->rps_ipi_list = sd;
  
-@@ -5764,6 +5764,8 @@ static DEFINE_PER_CPU(struct work_struct
+@@ -5767,6 +5767,8 @@ static DEFINE_PER_CPU(struct work_struct
  /* Network device is going away, flush any packets still pending */
  static void flush_backlog(struct work_struct *work)
  {
@@ -48,7 +48,7 @@ Signed-off-by: Felix Fietkau <nbd@nbd.name>
        struct sk_buff *skb, *tmp;
        struct softnet_data *sd;
  
-@@ -5779,9 +5781,18 @@ static void flush_backlog(struct work_st
+@@ -5782,9 +5784,18 @@ static void flush_backlog(struct work_st
                        input_queue_head_incr(sd);
                }
        }
@@ -67,7 +67,7 @@ Signed-off-by: Felix Fietkau <nbd@nbd.name>
        skb_queue_walk_safe(&sd->process_queue, skb, tmp) {
                if (skb->dev->reg_state == NETREG_UNREGISTERING) {
                        __skb_unlink(skb, &sd->process_queue);
-@@ -5789,7 +5800,18 @@ static void flush_backlog(struct work_st
+@@ -5792,7 +5803,18 @@ static void flush_backlog(struct work_st
                        input_queue_head_incr(sd);
                }
        }
@@ -86,7 +86,7 @@ Signed-off-by: Felix Fietkau <nbd@nbd.name>
  }
  
  static bool flush_required(int cpu)
-@@ -6472,6 +6494,7 @@ static int process_backlog(struct napi_s
+@@ -6475,6 +6497,7 @@ static int process_backlog(struct napi_s
  
                local_irq_disable();
                rps_lock(sd);
@@ -94,7 +94,7 @@ Signed-off-by: Felix Fietkau <nbd@nbd.name>
                if (skb_queue_empty(&sd->input_pkt_queue)) {
                        /*
                         * Inline a custom version of __napi_complete().
-@@ -6481,7 +6504,8 @@ static int process_backlog(struct napi_s
+@@ -6484,7 +6507,8 @@ static int process_backlog(struct napi_s
                         * We can use a plain write instead of clear_bit(),
                         * and we dont need an smp_mb() memory barrier.
                         */
@@ -104,7 +104,7 @@ Signed-off-by: Felix Fietkau <nbd@nbd.name>
                        again = false;
                } else {
                        skb_queue_splice_tail_init(&sd->input_pkt_queue,
-@@ -6898,6 +6922,57 @@ int dev_set_threaded(struct net_device *
+@@ -6901,6 +6925,57 @@ int dev_set_threaded(struct net_device *
  }
  EXPORT_SYMBOL(dev_set_threaded);
  
@@ -162,7 +162,7 @@ Signed-off-by: Felix Fietkau <nbd@nbd.name>
  void netif_napi_add(struct net_device *dev, struct napi_struct *napi,
                    int (*poll)(struct napi_struct *, int), int weight)
  {
-@@ -11378,6 +11453,9 @@ static int dev_cpu_dead(unsigned int old
+@@ -11381,6 +11456,9 @@ static int dev_cpu_dead(unsigned int old
        raise_softirq_irqoff(NET_TX_SOFTIRQ);
        local_irq_enable();
  
@@ -172,7 +172,7 @@ Signed-off-by: Felix Fietkau <nbd@nbd.name>
  #ifdef CONFIG_RPS
        remsd = oldsd->rps_ipi_list;
        oldsd->rps_ipi_list = NULL;
-@@ -11717,6 +11795,7 @@ static int __init net_dev_init(void)
+@@ -11720,6 +11798,7 @@ static int __init net_dev_init(void)
                sd->cpu = i;
  #endif