kernel: bump to 5.4.244

Refreshed all patches.

Signed-off-by: Tianling Shen <cnsztl@immortalwrt.org>
This commit is contained in:
Tianling Shen 2023-06-01 19:58:05 +08:00
parent 8715c83b9d
commit 8d858460fe
No known key found for this signature in database
GPG Key ID: 6850B6345C862176
16 changed files with 41 additions and 41 deletions

View File

@ -1,2 +1,2 @@
LINUX_VERSION-5.4 = .243 LINUX_VERSION-5.4 = .244
LINUX_KERNEL_HASH-5.4.243 = c3cf664feeeee47e0f0c45c53705568f73692c37a3ff7f11c1b15e59610feb04 LINUX_KERNEL_HASH-5.4.244 = 90f5280e95ed7b374ad6f3979ed08008e29a051e5f372d367c06ed75b002a21b

View File

@ -27,7 +27,7 @@ Signed-off-by: Phil Elwell <phil@raspberrypi.org>
/* Disable rate control for now */ /* Disable rate control for now */
bcmgenet_tdma_ring_writel(priv, index, flow_period_val, bcmgenet_tdma_ring_writel(priv, index, flow_period_val,
TDMA_FLOW_PERIOD); TDMA_FLOW_PERIOD);
@@ -3591,9 +3591,12 @@ static int bcmgenet_probe(struct platfor @@ -3592,9 +3592,12 @@ static int bcmgenet_probe(struct platfor
netif_set_real_num_rx_queues(priv->dev, priv->hw_params->rx_queues + 1); netif_set_real_num_rx_queues(priv->dev, priv->hw_params->rx_queues + 1);
/* Set default coalescing parameters */ /* Set default coalescing parameters */

View File

@ -70,7 +70,7 @@ Signed-off-by: Jonathan Bell <jonathan@raspberrypi.org>
* @dev: the device whose endpoint is being disabled * @dev: the device whose endpoint is being disabled
--- a/include/linux/usb.h --- a/include/linux/usb.h
+++ b/include/linux/usb.h +++ b/include/linux/usb.h
@@ -1821,6 +1821,8 @@ extern int usb_clear_halt(struct usb_dev @@ -1826,6 +1826,8 @@ extern int usb_clear_halt(struct usb_dev
extern int usb_reset_configuration(struct usb_device *dev); extern int usb_reset_configuration(struct usb_device *dev);
extern int usb_set_interface(struct usb_device *dev, int ifnum, int alternate); extern int usb_set_interface(struct usb_device *dev, int ifnum, int alternate);
extern void usb_reset_endpoint(struct usb_device *dev, unsigned int epaddr); extern void usb_reset_endpoint(struct usb_device *dev, unsigned int epaddr);

View File

@ -13,7 +13,7 @@ Signed-off-by: Phil Elwell <phil@raspberrypi.org>
--- a/drivers/net/ethernet/broadcom/genet/bcmgenet.c --- a/drivers/net/ethernet/broadcom/genet/bcmgenet.c
+++ b/drivers/net/ethernet/broadcom/genet/bcmgenet.c +++ b/drivers/net/ethernet/broadcom/genet/bcmgenet.c
@@ -3490,7 +3490,7 @@ static int bcmgenet_probe(struct platfor @@ -3491,7 +3491,7 @@ static int bcmgenet_probe(struct platfor
priv = netdev_priv(dev); priv = netdev_priv(dev);
priv->irq0 = platform_get_irq(pdev, 0); priv->irq0 = platform_get_irq(pdev, 0);
priv->irq1 = platform_get_irq(pdev, 1); priv->irq1 = platform_get_irq(pdev, 1);

View File

@ -59,7 +59,7 @@ Signed-off-by: Phil Elwell <phil@raspberrypi.com>
/* Reinitialize TDMA and RDMA and SW housekeeping */ /* Reinitialize TDMA and RDMA and SW housekeeping */
ret = bcmgenet_init_dma(priv); ret = bcmgenet_init_dma(priv);
@@ -3682,7 +3690,7 @@ static int bcmgenet_resume(struct device @@ -3683,7 +3691,7 @@ static int bcmgenet_resume(struct device
bcmgenet_power_up(priv, GENET_POWER_WOL_MAGIC); bcmgenet_power_up(priv, GENET_POWER_WOL_MAGIC);
/* Disable RX/TX DMA and flush TX queues */ /* Disable RX/TX DMA and flush TX queues */

View File

@ -18,7 +18,7 @@ Signed-off-by: David S. Miller <davem@davemloft.net>
--- a/net/core/dev.c --- a/net/core/dev.c
+++ b/net/core/dev.c +++ b/net/core/dev.c
@@ -6328,15 +6328,10 @@ void netif_napi_del(struct napi_struct * @@ -6330,15 +6330,10 @@ void netif_napi_del(struct napi_struct *
} }
EXPORT_SYMBOL(netif_napi_del); EXPORT_SYMBOL(netif_napi_del);
@ -35,7 +35,7 @@ Signed-off-by: David S. Miller <davem@davemloft.net>
weight = n->weight; weight = n->weight;
/* This NAPI_STATE_SCHED test is for avoiding a race /* This NAPI_STATE_SCHED test is for avoiding a race
@@ -6354,7 +6349,7 @@ static int napi_poll(struct napi_struct @@ -6356,7 +6351,7 @@ static int napi_poll(struct napi_struct
WARN_ON_ONCE(work > weight); WARN_ON_ONCE(work > weight);
if (likely(work < weight)) if (likely(work < weight))
@ -44,7 +44,7 @@ Signed-off-by: David S. Miller <davem@davemloft.net>
/* Drivers must not modify the NAPI state if they /* Drivers must not modify the NAPI state if they
* consume the entire weight. In such cases this code * consume the entire weight. In such cases this code
@@ -6363,7 +6358,7 @@ static int napi_poll(struct napi_struct @@ -6365,7 +6360,7 @@ static int napi_poll(struct napi_struct
*/ */
if (unlikely(napi_disable_pending(n))) { if (unlikely(napi_disable_pending(n))) {
napi_complete(n); napi_complete(n);
@ -53,7 +53,7 @@ Signed-off-by: David S. Miller <davem@davemloft.net>
} }
if (n->gro_bitmask) { if (n->gro_bitmask) {
@@ -6381,12 +6376,29 @@ static int napi_poll(struct napi_struct @@ -6383,12 +6378,29 @@ static int napi_poll(struct napi_struct
if (unlikely(!list_empty(&n->poll_list))) { if (unlikely(!list_empty(&n->poll_list))) {
pr_warn_once("%s: Budget exhausted after napi rescheduled\n", pr_warn_once("%s: Budget exhausted after napi rescheduled\n",
n->dev ? n->dev->name : "backlog"); n->dev ? n->dev->name : "backlog");

View File

@ -131,7 +131,7 @@ Signed-off-by: David S. Miller <davem@davemloft.net>
static int __dev_open(struct net_device *dev, struct netlink_ext_ack *extack) static int __dev_open(struct net_device *dev, struct netlink_ext_ack *extack)
{ {
const struct net_device_ops *ops = dev->netdev_ops; const struct net_device_ops *ops = dev->netdev_ops;
@@ -3891,6 +3913,21 @@ int gro_normal_batch __read_mostly = 8; @@ -3893,6 +3915,21 @@ int gro_normal_batch __read_mostly = 8;
static inline void ____napi_schedule(struct softnet_data *sd, static inline void ____napi_schedule(struct softnet_data *sd,
struct napi_struct *napi) struct napi_struct *napi)
{ {
@ -153,7 +153,7 @@ Signed-off-by: David S. Miller <davem@davemloft.net>
list_add_tail(&napi->poll_list, &sd->poll_list); list_add_tail(&napi->poll_list, &sd->poll_list);
__raise_softirq_irqoff(NET_RX_SOFTIRQ); __raise_softirq_irqoff(NET_RX_SOFTIRQ);
} }
@@ -6282,6 +6319,12 @@ void netif_napi_add(struct net_device *d @@ -6284,6 +6321,12 @@ void netif_napi_add(struct net_device *d
set_bit(NAPI_STATE_NPSVC, &napi->state); set_bit(NAPI_STATE_NPSVC, &napi->state);
list_add_rcu(&napi->dev_list, &dev->napi_list); list_add_rcu(&napi->dev_list, &dev->napi_list);
napi_hash_add(napi); napi_hash_add(napi);
@ -166,7 +166,7 @@ Signed-off-by: David S. Miller <davem@davemloft.net>
} }
EXPORT_SYMBOL(netif_napi_add); EXPORT_SYMBOL(netif_napi_add);
@@ -6298,9 +6341,28 @@ void napi_disable(struct napi_struct *n) @@ -6300,9 +6343,28 @@ void napi_disable(struct napi_struct *n)
hrtimer_cancel(&n->timer); hrtimer_cancel(&n->timer);
clear_bit(NAPI_STATE_DISABLE, &n->state); clear_bit(NAPI_STATE_DISABLE, &n->state);
@ -195,7 +195,7 @@ Signed-off-by: David S. Miller <davem@davemloft.net>
static void flush_gro_hash(struct napi_struct *napi) static void flush_gro_hash(struct napi_struct *napi)
{ {
int i; int i;
@@ -6325,6 +6387,11 @@ void netif_napi_del(struct napi_struct * @@ -6327,6 +6389,11 @@ void netif_napi_del(struct napi_struct *
flush_gro_hash(napi); flush_gro_hash(napi);
napi->gro_bitmask = 0; napi->gro_bitmask = 0;
@ -207,7 +207,7 @@ Signed-off-by: David S. Miller <davem@davemloft.net>
} }
EXPORT_SYMBOL(netif_napi_del); EXPORT_SYMBOL(netif_napi_del);
@@ -6404,6 +6471,51 @@ static int napi_poll(struct napi_struct @@ -6406,6 +6473,51 @@ static int napi_poll(struct napi_struct
return work; return work;
} }

View File

@ -57,7 +57,7 @@ Signed-off-by: David S. Miller <davem@davemloft.net>
* @n: NAPI context * @n: NAPI context
--- a/net/core/dev.c --- a/net/core/dev.c
+++ b/net/core/dev.c +++ b/net/core/dev.c
@@ -3917,8 +3917,9 @@ static inline void ____napi_schedule(str @@ -3919,8 +3919,9 @@ static inline void ____napi_schedule(str
if (test_bit(NAPI_STATE_THREADED, &napi->state)) { if (test_bit(NAPI_STATE_THREADED, &napi->state)) {
/* Paired with smp_mb__before_atomic() in /* Paired with smp_mb__before_atomic() in
@ -69,7 +69,7 @@ Signed-off-by: David S. Miller <davem@davemloft.net>
* wake_up_process() when it's not NULL. * wake_up_process() when it's not NULL.
*/ */
thread = READ_ONCE(napi->thread); thread = READ_ONCE(napi->thread);
@@ -6296,6 +6297,49 @@ static void init_gro_hash(struct napi_st @@ -6298,6 +6299,49 @@ static void init_gro_hash(struct napi_st
napi->gro_bitmask = 0; napi->gro_bitmask = 0;
} }

View File

@ -45,7 +45,7 @@ Cc: Hannes Frederic Sowa <hannes@stressinduktion.org>
enum gro_result { enum gro_result {
--- a/net/core/dev.c --- a/net/core/dev.c
+++ b/net/core/dev.c +++ b/net/core/dev.c
@@ -3924,6 +3924,8 @@ static inline void ____napi_schedule(str @@ -3926,6 +3926,8 @@ static inline void ____napi_schedule(str
*/ */
thread = READ_ONCE(napi->thread); thread = READ_ONCE(napi->thread);
if (thread) { if (thread) {
@ -54,7 +54,7 @@ Cc: Hannes Frederic Sowa <hannes@stressinduktion.org>
wake_up_process(thread); wake_up_process(thread);
return; return;
} }
@@ -6084,7 +6086,8 @@ bool napi_complete_done(struct napi_stru @@ -6086,7 +6088,8 @@ bool napi_complete_done(struct napi_stru
WARN_ON_ONCE(!(val & NAPIF_STATE_SCHED)); WARN_ON_ONCE(!(val & NAPIF_STATE_SCHED));
@ -64,7 +64,7 @@ Cc: Hannes Frederic Sowa <hannes@stressinduktion.org>
/* If STATE_MISSED was set, leave STATE_SCHED set, /* If STATE_MISSED was set, leave STATE_SCHED set,
* because we will call napi->poll() one more time. * because we will call napi->poll() one more time.
@@ -6517,16 +6520,25 @@ static int napi_poll(struct napi_struct @@ -6519,16 +6522,25 @@ static int napi_poll(struct napi_struct
static int napi_thread_wait(struct napi_struct *napi) static int napi_thread_wait(struct napi_struct *napi)
{ {

View File

@ -34,7 +34,7 @@ Signed-off-by: Jakub Kicinski <kuba@kernel.org>
--- a/net/core/dev.c --- a/net/core/dev.c
+++ b/net/core/dev.c +++ b/net/core/dev.c
@@ -6524,7 +6524,7 @@ static int napi_thread_wait(struct napi_ @@ -6526,7 +6526,7 @@ static int napi_thread_wait(struct napi_
set_current_state(TASK_INTERRUPTIBLE); set_current_state(TASK_INTERRUPTIBLE);
@ -43,7 +43,7 @@ Signed-off-by: Jakub Kicinski <kuba@kernel.org>
/* Testing SCHED_THREADED bit here to make sure the current /* Testing SCHED_THREADED bit here to make sure the current
* kthread owns this napi and could poll on this napi. * kthread owns this napi and could poll on this napi.
* Testing SCHED bit is not enough because SCHED bit might be * Testing SCHED bit is not enough because SCHED bit might be
@@ -6542,6 +6542,7 @@ static int napi_thread_wait(struct napi_ @@ -6544,6 +6544,7 @@ static int napi_thread_wait(struct napi_
set_current_state(TASK_INTERRUPTIBLE); set_current_state(TASK_INTERRUPTIBLE);
} }
__set_current_state(TASK_RUNNING); __set_current_state(TASK_RUNNING);

View File

@ -66,7 +66,7 @@ Signed-off-by: David S. Miller <davem@davemloft.net>
--- a/net/core/dev.c --- a/net/core/dev.c
+++ b/net/core/dev.c +++ b/net/core/dev.c
@@ -5478,8 +5478,7 @@ static inline void skb_gro_reset_offset( @@ -5480,8 +5480,7 @@ static inline void skb_gro_reset_offset(
NAPI_GRO_CB(skb)->frag0 = NULL; NAPI_GRO_CB(skb)->frag0 = NULL;
NAPI_GRO_CB(skb)->frag0_len = 0; NAPI_GRO_CB(skb)->frag0_len = 0;

View File

@ -101,7 +101,7 @@ Signed-off-by: Felix Fietkau <nbd@nbd.name>
help help
--- a/net/core/dev.c --- a/net/core/dev.c
+++ b/net/core/dev.c +++ b/net/core/dev.c
@@ -3223,10 +3223,20 @@ static int xmit_one(struct sk_buff *skb, @@ -3225,10 +3225,20 @@ static int xmit_one(struct sk_buff *skb,
if (dev_nit_active(dev)) if (dev_nit_active(dev))
dev_queue_xmit_nit(skb, dev); dev_queue_xmit_nit(skb, dev);

View File

@ -80,7 +80,7 @@
struct net_bridge_port *p; struct net_bridge_port *p;
--- a/net/core/dev.c --- a/net/core/dev.c
+++ b/net/core/dev.c +++ b/net/core/dev.c
@@ -3220,9 +3220,17 @@ static int xmit_one(struct sk_buff *skb, @@ -3222,9 +3222,17 @@ static int xmit_one(struct sk_buff *skb,
unsigned int len; unsigned int len;
int rc; int rc;
@ -99,7 +99,7 @@
#ifdef CONFIG_ETHERNET_PACKET_MANGLE #ifdef CONFIG_ETHERNET_PACKET_MANGLE
if (!dev->eth_mangle_tx || if (!dev->eth_mangle_tx ||
(skb = dev->eth_mangle_tx(dev, skb)) != NULL) (skb = dev->eth_mangle_tx(dev, skb)) != NULL)
@@ -4756,6 +4764,11 @@ void netdev_rx_handler_unregister(struct @@ -4758,6 +4766,11 @@ void netdev_rx_handler_unregister(struct
} }
EXPORT_SYMBOL_GPL(netdev_rx_handler_unregister); EXPORT_SYMBOL_GPL(netdev_rx_handler_unregister);
@ -111,7 +111,7 @@
/* /*
* Limit the use of PFMEMALLOC reserves to those protocols that implement * Limit the use of PFMEMALLOC reserves to those protocols that implement
* the special handling of PFMEMALLOC skbs. * the special handling of PFMEMALLOC skbs.
@@ -4806,6 +4819,10 @@ static int __netif_receive_skb_core(stru @@ -4808,6 +4821,10 @@ static int __netif_receive_skb_core(stru
int ret = NET_RX_DROP; int ret = NET_RX_DROP;
__be16 type; __be16 type;
@ -122,7 +122,7 @@
net_timestamp_check(!READ_ONCE(netdev_tstamp_prequeue), skb); net_timestamp_check(!READ_ONCE(netdev_tstamp_prequeue), skb);
trace_netif_receive_skb(skb); trace_netif_receive_skb(skb);
@@ -4845,6 +4862,16 @@ another_round: @@ -4847,6 +4864,16 @@ another_round:
goto out; goto out;
} }

View File

@ -55,7 +55,7 @@ Signed-off-by: Felix Fietkau <nbd@nbd.name>
goto out; goto out;
if (!net_eq(dev_net(dev), sock_net(sk))) if (!net_eq(dev_net(dev), sock_net(sk)))
@@ -2069,12 +2071,12 @@ static int packet_rcv(struct sk_buff *sk @@ -2067,12 +2069,12 @@ static int packet_rcv(struct sk_buff *sk
unsigned int snaplen, res; unsigned int snaplen, res;
bool is_drop_n_account = false; bool is_drop_n_account = false;
@ -71,7 +71,7 @@ Signed-off-by: Felix Fietkau <nbd@nbd.name>
if (!net_eq(dev_net(dev), sock_net(sk))) if (!net_eq(dev_net(dev), sock_net(sk)))
goto drop; goto drop;
@@ -2200,12 +2202,12 @@ static int tpacket_rcv(struct sk_buff *s @@ -2198,12 +2200,12 @@ static int tpacket_rcv(struct sk_buff *s
BUILD_BUG_ON(TPACKET_ALIGN(sizeof(*h.h2)) != 32); BUILD_BUG_ON(TPACKET_ALIGN(sizeof(*h.h2)) != 32);
BUILD_BUG_ON(TPACKET_ALIGN(sizeof(*h.h3)) != 48); BUILD_BUG_ON(TPACKET_ALIGN(sizeof(*h.h3)) != 48);
@ -87,7 +87,7 @@ Signed-off-by: Felix Fietkau <nbd@nbd.name>
if (!net_eq(dev_net(dev), sock_net(sk))) if (!net_eq(dev_net(dev), sock_net(sk)))
goto drop; goto drop;
@@ -3313,6 +3315,7 @@ static int packet_create(struct net *net @@ -3311,6 +3313,7 @@ static int packet_create(struct net *net
mutex_init(&po->pg_vec_lock); mutex_init(&po->pg_vec_lock);
po->rollover = NULL; po->rollover = NULL;
po->prot_hook.func = packet_rcv; po->prot_hook.func = packet_rcv;
@ -95,7 +95,7 @@ Signed-off-by: Felix Fietkau <nbd@nbd.name>
if (sock->type == SOCK_PACKET) if (sock->type == SOCK_PACKET)
po->prot_hook.func = packet_rcv_spkt; po->prot_hook.func = packet_rcv_spkt;
@@ -3952,6 +3955,16 @@ packet_setsockopt(struct socket *sock, i @@ -3950,6 +3953,16 @@ packet_setsockopt(struct socket *sock, i
WRITE_ONCE(po->xmit, val ? packet_direct_xmit : dev_queue_xmit); WRITE_ONCE(po->xmit, val ? packet_direct_xmit : dev_queue_xmit);
return 0; return 0;
} }
@ -112,7 +112,7 @@ Signed-off-by: Felix Fietkau <nbd@nbd.name>
default: default:
return -ENOPROTOOPT; return -ENOPROTOOPT;
} }
@@ -4008,6 +4021,13 @@ static int packet_getsockopt(struct sock @@ -4006,6 +4019,13 @@ static int packet_getsockopt(struct sock
case PACKET_VNET_HDR: case PACKET_VNET_HDR:
val = po->has_vnet_hdr; val = po->has_vnet_hdr;
break; break;

View File

@ -506,7 +506,7 @@ Signed-off-by: Pablo Neira Ayuso <pablo@netfilter.org>
+MODULE_ALIAS("nf-flow-table-hw"); +MODULE_ALIAS("nf-flow-table-hw");
--- a/net/netfilter/nf_tables_api.c --- a/net/netfilter/nf_tables_api.c
+++ b/net/netfilter/nf_tables_api.c +++ b/net/netfilter/nf_tables_api.c
@@ -5770,6 +5770,13 @@ static int nf_tables_flowtable_parse_hoo @@ -5802,6 +5802,13 @@ static int nf_tables_flowtable_parse_hoo
if (err < 0) if (err < 0)
return err; return err;
@ -520,7 +520,7 @@ Signed-off-by: Pablo Neira Ayuso <pablo@netfilter.org>
ops = kcalloc(n, sizeof(struct nf_hook_ops), GFP_KERNEL); ops = kcalloc(n, sizeof(struct nf_hook_ops), GFP_KERNEL);
if (!ops) if (!ops)
return -ENOMEM; return -ENOMEM;
@@ -5900,10 +5907,19 @@ static int nf_tables_newflowtable(struct @@ -5932,10 +5939,19 @@ static int nf_tables_newflowtable(struct
} }
flowtable->data.type = type; flowtable->data.type = type;
@ -540,7 +540,7 @@ Signed-off-by: Pablo Neira Ayuso <pablo@netfilter.org>
err = nf_tables_flowtable_parse_hook(&ctx, nla[NFTA_FLOWTABLE_HOOK], err = nf_tables_flowtable_parse_hook(&ctx, nla[NFTA_FLOWTABLE_HOOK],
flowtable); flowtable);
if (err < 0) if (err < 0)
@@ -6029,7 +6045,8 @@ static int nf_tables_fill_flowtable_info @@ -6061,7 +6077,8 @@ static int nf_tables_fill_flowtable_info
nla_put_string(skb, NFTA_FLOWTABLE_NAME, flowtable->name) || nla_put_string(skb, NFTA_FLOWTABLE_NAME, flowtable->name) ||
nla_put_be32(skb, NFTA_FLOWTABLE_USE, htonl(flowtable->use)) || nla_put_be32(skb, NFTA_FLOWTABLE_USE, htonl(flowtable->use)) ||
nla_put_be64(skb, NFTA_FLOWTABLE_HANDLE, cpu_to_be64(flowtable->handle), nla_put_be64(skb, NFTA_FLOWTABLE_HANDLE, cpu_to_be64(flowtable->handle),

View File

@ -32,7 +32,7 @@ Signed-off-by: Felix Fietkau <nbd@nbd.name>
__u16 tc_index; /* traffic control index */ __u16 tc_index; /* traffic control index */
--- a/net/core/dev.c --- a/net/core/dev.c
+++ b/net/core/dev.c +++ b/net/core/dev.c
@@ -5544,6 +5544,9 @@ static enum gro_result dev_gro_receive(s @@ -5546,6 +5546,9 @@ static enum gro_result dev_gro_receive(s
int same_flow; int same_flow;
int grow; int grow;
@ -42,7 +42,7 @@ Signed-off-by: Felix Fietkau <nbd@nbd.name>
if (netif_elide_gro(skb->dev)) if (netif_elide_gro(skb->dev))
goto normal; goto normal;
@@ -7487,6 +7490,48 @@ static void __netdev_adjacent_dev_unlink @@ -7489,6 +7492,48 @@ static void __netdev_adjacent_dev_unlink
&upper_dev->adj_list.lower); &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, static int __netdev_upper_dev_link(struct net_device *dev,
struct net_device *upper_dev, bool master, struct net_device *upper_dev, bool master,
void *upper_priv, void *upper_info, void *upper_priv, void *upper_info,
@@ -7537,6 +7582,7 @@ static int __netdev_upper_dev_link(struc @@ -7539,6 +7584,7 @@ static int __netdev_upper_dev_link(struc
if (ret) if (ret)
return ret; return ret;
@ -99,7 +99,7 @@ Signed-off-by: Felix Fietkau <nbd@nbd.name>
ret = call_netdevice_notifiers_info(NETDEV_CHANGEUPPER, ret = call_netdevice_notifiers_info(NETDEV_CHANGEUPPER,
&changeupper_info.info); &changeupper_info.info);
ret = notifier_to_errno(ret); ret = notifier_to_errno(ret);
@@ -7630,6 +7676,7 @@ void netdev_upper_dev_unlink(struct net_ @@ -7632,6 +7678,7 @@ void netdev_upper_dev_unlink(struct net_
__netdev_adjacent_dev_unlink_neighbour(dev, upper_dev); __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, call_netdevice_notifiers_info(NETDEV_CHANGEUPPER,
&changeupper_info.info); &changeupper_info.info);
@@ -8360,6 +8407,7 @@ int dev_set_mac_address(struct net_devic @@ -8362,6 +8409,7 @@ int dev_set_mac_address(struct net_devic
if (err) if (err)
return err; return err;
dev->addr_assign_type = NET_ADDR_SET; dev->addr_assign_type = NET_ADDR_SET;