aboutsummaryrefslogtreecommitdiffstats
path: root/target/linux/generic/pending-5.15
diff options
context:
space:
mode:
authorFelix Fietkau <nbd@nbd.name>2023-09-04 15:28:59 +0200
committerFelix Fietkau <nbd@nbd.name>2023-09-18 14:25:18 +0200
commit7e55f20c1f31f78ed22719b129743bbc243a3feb (patch)
treee189417559fbb3c45ca4944ec1ce07c898c5e746 /target/linux/generic/pending-5.15
parent385a50f02df4068118e94a742ab7b24c4b8f882b (diff)
downloadupstream-7e55f20c1f31f78ed22719b129743bbc243a3feb.tar.gz
upstream-7e55f20c1f31f78ed22719b129743bbc243a3feb.tar.bz2
upstream-7e55f20c1f31f78ed22719b129743bbc243a3feb.zip
kernel: backport support for renaming netdevs while up
Will be used in upcoming hostapd changes Signed-off-by: Felix Fietkau <nbd@nbd.name> (cherry picked from commit 77c45ddd86b0dff7765e30f7846cbdef34fa93ce)
Diffstat (limited to 'target/linux/generic/pending-5.15')
-rw-r--r--target/linux/generic/pending-5.15/680-NET-skip-GRO-for-foreign-MAC-addresses.patch12
-rw-r--r--target/linux/generic/pending-5.15/760-net-core-add-optional-threading-for-backlog-processi.patch20
2 files changed, 16 insertions, 16 deletions
diff --git a/target/linux/generic/pending-5.15/680-NET-skip-GRO-for-foreign-MAC-addresses.patch b/target/linux/generic/pending-5.15/680-NET-skip-GRO-for-foreign-MAC-addresses.patch
index f01348d349..71b3aac846 100644
--- a/target/linux/generic/pending-5.15/680-NET-skip-GRO-for-foreign-MAC-addresses.patch
+++ b/target/linux/generic/pending-5.15/680-NET-skip-GRO-for-foreign-MAC-addresses.patch
@@ -11,7 +11,7 @@ Signed-off-by: Felix Fietkau <nbd@nbd.name>
--- a/include/linux/netdevice.h
+++ b/include/linux/netdevice.h
-@@ -2100,6 +2100,8 @@ struct net_device {
+@@ -2098,6 +2098,8 @@ struct net_device {
struct netdev_hw_addr_list mc;
struct netdev_hw_addr_list dev_addrs;
@@ -32,7 +32,7 @@ Signed-off-by: Felix Fietkau <nbd@nbd.name>
__u8 inner_protocol_type:1;
--- a/net/core/dev.c
+++ b/net/core/dev.c
-@@ -6069,6 +6069,9 @@ static enum gro_result dev_gro_receive(s
+@@ -6054,6 +6054,9 @@ static enum gro_result dev_gro_receive(s
int same_flow;
int grow;
@@ -42,7 +42,7 @@ Signed-off-by: Felix Fietkau <nbd@nbd.name>
if (netif_elide_gro(skb->dev))
goto normal;
-@@ -8083,6 +8086,48 @@ static void __netdev_adjacent_dev_unlink
+@@ -8068,6 +8071,48 @@ static void __netdev_adjacent_dev_unlink
&upper_dev->adj_list.lower);
}
@@ -91,7 +91,7 @@ Signed-off-by: Felix Fietkau <nbd@nbd.name>
static int __netdev_upper_dev_link(struct net_device *dev,
struct net_device *upper_dev, bool master,
void *upper_priv, void *upper_info,
-@@ -8134,6 +8179,7 @@ static int __netdev_upper_dev_link(struc
+@@ -8119,6 +8164,7 @@ static int __netdev_upper_dev_link(struc
if (ret)
return ret;
@@ -99,7 +99,7 @@ Signed-off-by: Felix Fietkau <nbd@nbd.name>
ret = call_netdevice_notifiers_info(NETDEV_CHANGEUPPER,
&changeupper_info.info);
ret = notifier_to_errno(ret);
-@@ -8230,6 +8276,7 @@ static void __netdev_upper_dev_unlink(st
+@@ -8215,6 +8261,7 @@ static void __netdev_upper_dev_unlink(st
__netdev_adjacent_dev_unlink_neighbour(dev, upper_dev);
@@ -107,7 +107,7 @@ Signed-off-by: Felix Fietkau <nbd@nbd.name>
call_netdevice_notifiers_info(NETDEV_CHANGEUPPER,
&changeupper_info.info);
-@@ -9049,6 +9096,7 @@ int dev_set_mac_address(struct net_devic
+@@ -9034,6 +9081,7 @@ int dev_set_mac_address(struct net_devic
if (err)
return err;
dev->addr_assign_type = NET_ADDR_SET;
diff --git a/target/linux/generic/pending-5.15/760-net-core-add-optional-threading-for-backlog-processi.patch b/target/linux/generic/pending-5.15/760-net-core-add-optional-threading-for-backlog-processi.patch
index 1ccdea6d99..8a65cbe021 100644
--- a/target/linux/generic/pending-5.15/760-net-core-add-optional-threading-for-backlog-processi.patch
+++ b/target/linux/generic/pending-5.15/760-net-core-add-optional-threading-for-backlog-processi.patch
@@ -20,7 +20,7 @@ Signed-off-by: Felix Fietkau <nbd@nbd.name>
/**
* napi_disable - prevent NAPI from scheduling
-@@ -3364,6 +3365,7 @@ struct softnet_data {
+@@ -3362,6 +3363,7 @@ struct softnet_data {
unsigned int processed;
unsigned int time_squeeze;
unsigned int received_rps;
@@ -30,7 +30,7 @@ Signed-off-by: Felix Fietkau <nbd@nbd.name>
#endif
--- a/net/core/dev.c
+++ b/net/core/dev.c
-@@ -4578,7 +4578,7 @@ static int rps_ipi_queued(struct softnet
+@@ -4563,7 +4563,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;
-@@ -5759,6 +5759,8 @@ static DEFINE_PER_CPU(struct work_struct
+@@ -5744,6 +5744,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;
-@@ -5774,9 +5776,18 @@ static void flush_backlog(struct work_st
+@@ -5759,9 +5761,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);
-@@ -5784,7 +5795,18 @@ static void flush_backlog(struct work_st
+@@ -5769,7 +5780,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)
-@@ -6467,6 +6489,7 @@ static int process_backlog(struct napi_s
+@@ -6452,6 +6474,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().
-@@ -6476,7 +6499,8 @@ static int process_backlog(struct napi_s
+@@ -6461,7 +6484,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,
-@@ -6893,6 +6917,57 @@ int dev_set_threaded(struct net_device *
+@@ -6878,6 +6902,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)
{
-@@ -11369,6 +11444,9 @@ static int dev_cpu_dead(unsigned int old
+@@ -11354,6 +11429,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;
-@@ -11708,6 +11786,7 @@ static int __init net_dev_init(void)
+@@ -11693,6 +11771,7 @@ static int __init net_dev_init(void)
sd->cpu = i;
#endif