All patches automatically rebased.
Signed-off-by: Hauke Mehrtens <hauke@hauke-m.de>
-LINUX_VERSION-5.10 = .180
-LINUX_KERNEL_HASH-5.10.180 = da839a4bf1f6c964b9bde593bd58928f106f53690ff677e226bc50cf368b0c29
+LINUX_VERSION-5.10 = .181
+LINUX_KERNEL_HASH-5.10.181 = ace6ceb73f5f2504bc1bcb9b8cd5b55d6ff8e90a81ee244ad2315fdd671ba4e7
/* Disable rate control for now */
bcmgenet_tdma_ring_writel(priv, index, flow_period_val,
TDMA_FLOW_PERIOD);
-@@ -4081,9 +4081,12 @@ static int bcmgenet_probe(struct platfor
+@@ -4082,9 +4082,12 @@ static int bcmgenet_probe(struct platfor
netif_set_real_num_rx_queues(priv->dev, priv->hw_params->rx_queues + 1);
/* Set default coalescing parameters */
* @dev: the device whose endpoint is being disabled
--- a/include/linux/usb.h
+++ b/include/linux/usb.h
-@@ -1843,6 +1843,8 @@ extern int usb_clear_halt(struct usb_dev
+@@ -1848,6 +1848,8 @@ extern int usb_clear_halt(struct usb_dev
extern int usb_reset_configuration(struct usb_device *dev);
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);
/* Reinitialize TDMA and RDMA and SW housekeeping */
ret = bcmgenet_init_dma(priv);
-@@ -4210,7 +4218,7 @@ static int bcmgenet_resume(struct device
+@@ -4211,7 +4219,7 @@ static int bcmgenet_resume(struct device
bcmgenet_hfb_create_rxnfc_filter(priv, rule);
/* Disable RX/TX DMA and flush TX queues */
--- a/net/core/dev.c
+++ b/net/core/dev.c
-@@ -6813,15 +6813,10 @@ void __netif_napi_del(struct napi_struct
+@@ -6815,15 +6815,10 @@ void __netif_napi_del(struct napi_struct
}
EXPORT_SYMBOL(__netif_napi_del);
weight = n->weight;
/* This NAPI_STATE_SCHED test is for avoiding a race
-@@ -6841,7 +6836,7 @@ static int napi_poll(struct napi_struct
+@@ -6843,7 +6838,7 @@ static int napi_poll(struct napi_struct
n->poll, work, weight);
if (likely(work < weight))
/* Drivers must not modify the NAPI state if they
* consume the entire weight. In such cases this code
-@@ -6850,7 +6845,7 @@ static int napi_poll(struct napi_struct
+@@ -6852,7 +6847,7 @@ static int napi_poll(struct napi_struct
*/
if (unlikely(napi_disable_pending(n))) {
napi_complete(n);
}
if (n->gro_bitmask) {
-@@ -6868,12 +6863,29 @@ static int napi_poll(struct napi_struct
+@@ -6870,12 +6865,29 @@ static int napi_poll(struct napi_struct
if (unlikely(!list_empty(&n->poll_list))) {
pr_warn_once("%s: Budget exhausted after napi rescheduled\n",
n->dev ? n->dev->name : "backlog");
static int __dev_open(struct net_device *dev, struct netlink_ext_ack *extack)
{
const struct net_device_ops *ops = dev->netdev_ops;
-@@ -4274,6 +4296,21 @@ int gro_normal_batch __read_mostly = 8;
+@@ -4276,6 +4298,21 @@ int gro_normal_batch __read_mostly = 8;
static inline void ____napi_schedule(struct softnet_data *sd,
struct napi_struct *napi)
{
list_add_tail(&napi->poll_list, &sd->poll_list);
__raise_softirq_irqoff(NET_RX_SOFTIRQ);
}
-@@ -6766,6 +6803,12 @@ void netif_napi_add(struct net_device *d
+@@ -6768,6 +6805,12 @@ void netif_napi_add(struct net_device *d
set_bit(NAPI_STATE_NPSVC, &napi->state);
list_add_rcu(&napi->dev_list, &dev->napi_list);
napi_hash_add(napi);
}
EXPORT_SYMBOL(netif_napi_add);
-@@ -6782,9 +6825,28 @@ void napi_disable(struct napi_struct *n)
+@@ -6784,9 +6827,28 @@ void napi_disable(struct napi_struct *n)
hrtimer_cancel(&n->timer);
clear_bit(NAPI_STATE_DISABLE, &n->state);
static void flush_gro_hash(struct napi_struct *napi)
{
int i;
-@@ -6810,6 +6872,11 @@ void __netif_napi_del(struct napi_struct
+@@ -6812,6 +6874,11 @@ void __netif_napi_del(struct napi_struct
flush_gro_hash(napi);
napi->gro_bitmask = 0;
}
EXPORT_SYMBOL(__netif_napi_del);
-@@ -6891,6 +6958,51 @@ static int napi_poll(struct napi_struct
+@@ -6893,6 +6960,51 @@ static int napi_poll(struct napi_struct
return work;
}
* @n: NAPI context
--- a/net/core/dev.c
+++ b/net/core/dev.c
-@@ -4300,8 +4300,9 @@ static inline void ____napi_schedule(str
+@@ -4302,8 +4302,9 @@ static inline void ____napi_schedule(str
if (test_bit(NAPI_STATE_THREADED, &napi->state)) {
/* Paired with smp_mb__before_atomic() in
* wake_up_process() when it's not NULL.
*/
thread = READ_ONCE(napi->thread);
-@@ -6776,6 +6777,49 @@ static void init_gro_hash(struct napi_st
+@@ -6778,6 +6779,49 @@ static void init_gro_hash(struct napi_st
napi->gro_bitmask = 0;
}
enum gro_result {
--- a/net/core/dev.c
+++ b/net/core/dev.c
-@@ -4307,6 +4307,8 @@ static inline void ____napi_schedule(str
+@@ -4309,6 +4309,8 @@ static inline void ____napi_schedule(str
*/
thread = READ_ONCE(napi->thread);
if (thread) {
wake_up_process(thread);
return;
}
-@@ -6568,7 +6570,8 @@ bool napi_complete_done(struct napi_stru
+@@ -6570,7 +6572,8 @@ bool napi_complete_done(struct napi_stru
WARN_ON_ONCE(!(val & NAPIF_STATE_SCHED));
/* If STATE_MISSED was set, leave STATE_SCHED set,
* because we will call napi->poll() one more time.
-@@ -7004,16 +7007,25 @@ static int napi_poll(struct napi_struct
+@@ -7006,16 +7009,25 @@ static int napi_poll(struct napi_struct
static int napi_thread_wait(struct napi_struct *napi)
{
--- a/net/core/dev.c
+++ b/net/core/dev.c
-@@ -7011,7 +7011,7 @@ static int napi_thread_wait(struct napi_
+@@ -7013,7 +7013,7 @@ static int napi_thread_wait(struct napi_
set_current_state(TASK_INTERRUPTIBLE);
/* Testing SCHED_THREADED bit here to make sure the current
* kthread owns this napi and could poll on this napi.
* Testing SCHED bit is not enough because SCHED bit might be
-@@ -7029,6 +7029,7 @@ static int napi_thread_wait(struct napi_
+@@ -7031,6 +7031,7 @@ static int napi_thread_wait(struct napi_
set_current_state(TASK_INTERRUPTIBLE);
}
__set_current_state(TASK_RUNNING);
help
--- a/net/core/dev.c
+++ b/net/core/dev.c
-@@ -3656,6 +3656,11 @@ static int xmit_one(struct sk_buff *skb,
+@@ -3658,6 +3658,11 @@ static int xmit_one(struct sk_buff *skb,
if (dev_nit_active(dev))
dev_queue_xmit_nit(skb, dev);
goto out;
if (!net_eq(dev_net(dev), sock_net(sk)))
-@@ -2090,12 +2092,12 @@ static int packet_rcv(struct sk_buff *sk
+@@ -2088,12 +2090,12 @@ static int packet_rcv(struct sk_buff *sk
unsigned int snaplen, res;
bool is_drop_n_account = false;
if (!net_eq(dev_net(dev), sock_net(sk)))
goto drop;
-@@ -2221,12 +2223,12 @@ static int tpacket_rcv(struct sk_buff *s
+@@ -2219,12 +2221,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.h3)) != 48);
if (!net_eq(dev_net(dev), sock_net(sk)))
goto drop;
-@@ -3342,6 +3344,7 @@ static int packet_create(struct net *net
+@@ -3340,6 +3342,7 @@ static int packet_create(struct net *net
mutex_init(&po->pg_vec_lock);
po->rollover = NULL;
po->prot_hook.func = packet_rcv;
if (sock->type == SOCK_PACKET)
po->prot_hook.func = packet_rcv_spkt;
-@@ -3982,6 +3985,16 @@ packet_setsockopt(struct socket *sock, i
+@@ -3980,6 +3983,16 @@ packet_setsockopt(struct socket *sock, i
WRITE_ONCE(po->xmit, val ? packet_direct_xmit : dev_queue_xmit);
return 0;
}
default:
return -ENOPROTOOPT;
}
-@@ -4038,6 +4051,13 @@ static int packet_getsockopt(struct sock
+@@ -4036,6 +4049,13 @@ static int packet_getsockopt(struct sock
case PACKET_VNET_HDR:
val = po->has_vnet_hdr;
break;
__u16 tc_index; /* traffic control index */
--- a/net/core/dev.c
+++ b/net/core/dev.c
-@@ -6069,6 +6069,9 @@ static enum gro_result dev_gro_receive(s
+@@ -6071,6 +6071,9 @@ static enum gro_result dev_gro_receive(s
int same_flow;
int grow;
if (netif_elide_gro(skb->dev))
goto normal;
-@@ -8047,6 +8050,48 @@ static void __netdev_adjacent_dev_unlink
+@@ -8049,6 +8052,48 @@ static void __netdev_adjacent_dev_unlink
&upper_dev->adj_list.lower);
}
static int __netdev_upper_dev_link(struct net_device *dev,
struct net_device *upper_dev, bool master,
void *upper_priv, void *upper_info,
-@@ -8098,6 +8143,7 @@ static int __netdev_upper_dev_link(struc
+@@ -8100,6 +8145,7 @@ static int __netdev_upper_dev_link(struc
if (ret)
return ret;
ret = call_netdevice_notifiers_info(NETDEV_CHANGEUPPER,
&changeupper_info.info);
ret = notifier_to_errno(ret);
-@@ -8194,6 +8240,7 @@ static void __netdev_upper_dev_unlink(st
+@@ -8196,6 +8242,7 @@ static void __netdev_upper_dev_unlink(st
__netdev_adjacent_dev_unlink_neighbour(dev, upper_dev);
call_netdevice_notifiers_info(NETDEV_CHANGEUPPER,
&changeupper_info.info);
-@@ -8980,6 +9027,7 @@ int dev_set_mac_address(struct net_devic
+@@ -8982,6 +9029,7 @@ int dev_set_mac_address(struct net_devic
if (err)
return err;
dev->addr_assign_type = NET_ADDR_SET;