|
|
@@ -95,7 +95,7 @@ Signed-off-by: Felix Fietkau <[email protected]>
|
|
|
|
|
|
static int netif_rx_internal(struct sk_buff *skb);
|
|
|
static int call_netdevice_notifiers_info(unsigned long val,
|
|
|
-@@ -5937,6 +5938,11 @@ void __napi_schedule(struct napi_struct
|
|
|
+@@ -5940,6 +5941,11 @@ void __napi_schedule(struct napi_struct
|
|
|
{
|
|
|
unsigned long flags;
|
|
|
|
|
|
@@ -107,7 +107,7 @@ Signed-off-by: Felix Fietkau <[email protected]>
|
|
|
local_irq_save(flags);
|
|
|
____napi_schedule(this_cpu_ptr(&softnet_data), n);
|
|
|
local_irq_restore(flags);
|
|
|
-@@ -5988,6 +5994,10 @@ EXPORT_SYMBOL(napi_schedule_prep);
|
|
|
+@@ -5991,6 +5997,10 @@ EXPORT_SYMBOL(napi_schedule_prep);
|
|
|
*/
|
|
|
void __napi_schedule_irqoff(struct napi_struct *n)
|
|
|
{
|
|
|
@@ -118,7 +118,7 @@ Signed-off-by: Felix Fietkau <[email protected]>
|
|
|
if (!IS_ENABLED(CONFIG_PREEMPT_RT))
|
|
|
____napi_schedule(this_cpu_ptr(&softnet_data), n);
|
|
|
else
|
|
|
-@@ -6252,9 +6262,89 @@ static void init_gro_hash(struct napi_st
|
|
|
+@@ -6255,9 +6265,89 @@ static void init_gro_hash(struct napi_st
|
|
|
napi->gro_bitmask = 0;
|
|
|
}
|
|
|
|
|
|
@@ -208,7 +208,7 @@ Signed-off-by: Felix Fietkau <[email protected]>
|
|
|
INIT_LIST_HEAD(&napi->poll_list);
|
|
|
hrtimer_init(&napi->timer, CLOCK_MONOTONIC, HRTIMER_MODE_REL_PINNED);
|
|
|
napi->timer.function = napi_watchdog;
|
|
|
-@@ -6271,6 +6361,7 @@ void netif_napi_add(struct net_device *d
|
|
|
+@@ -6274,6 +6364,7 @@ void netif_napi_add(struct net_device *d
|
|
|
#ifdef CONFIG_NETPOLL
|
|
|
napi->poll_owner = -1;
|
|
|
#endif
|
|
|
@@ -216,7 +216,7 @@ Signed-off-by: Felix Fietkau <[email protected]>
|
|
|
set_bit(NAPI_STATE_SCHED, &napi->state);
|
|
|
set_bit(NAPI_STATE_NPSVC, &napi->state);
|
|
|
list_add_rcu(&napi->dev_list, &dev->napi_list);
|
|
|
-@@ -6311,6 +6402,7 @@ static void flush_gro_hash(struct napi_s
|
|
|
+@@ -6314,6 +6405,7 @@ static void flush_gro_hash(struct napi_s
|
|
|
void netif_napi_del(struct napi_struct *napi)
|
|
|
{
|
|
|
might_sleep();
|
|
|
@@ -224,7 +224,7 @@ Signed-off-by: Felix Fietkau <[email protected]>
|
|
|
if (napi_hash_del(napi))
|
|
|
synchronize_net();
|
|
|
list_del_init(&napi->dev_list);
|
|
|
-@@ -6323,50 +6415,18 @@ EXPORT_SYMBOL(netif_napi_del);
|
|
|
+@@ -6326,50 +6418,18 @@ EXPORT_SYMBOL(netif_napi_del);
|
|
|
|
|
|
static int napi_poll(struct napi_struct *n, struct list_head *repoll)
|
|
|
{
|
|
|
@@ -279,7 +279,7 @@ Signed-off-by: Felix Fietkau <[email protected]>
|
|
|
|
|
|
/* Some drivers may have called napi_schedule
|
|
|
* prior to exhausting their budget.
|
|
|
-@@ -10346,6 +10406,10 @@ static int __init net_dev_init(void)
|
|
|
+@@ -10349,6 +10409,10 @@ static int __init net_dev_init(void)
|
|
|
sd->backlog.weight = weight_p;
|
|
|
}
|
|
|
|
|
|
@@ -292,7 +292,7 @@ Signed-off-by: Felix Fietkau <[email protected]>
|
|
|
/* The loopback device is special if any other network devices
|
|
|
--- a/net/core/net-sysfs.c
|
|
|
+++ b/net/core/net-sysfs.c
|
|
|
-@@ -442,6 +442,52 @@ static ssize_t proto_down_store(struct d
|
|
|
+@@ -470,6 +470,52 @@ static ssize_t proto_down_store(struct d
|
|
|
}
|
|
|
NETDEVICE_SHOW_RW(proto_down, fmt_dec);
|
|
|
|
|
|
@@ -345,7 +345,7 @@ Signed-off-by: Felix Fietkau <[email protected]>
|
|
|
static ssize_t phys_port_id_show(struct device *dev,
|
|
|
struct device_attribute *attr, char *buf)
|
|
|
{
|
|
|
-@@ -532,6 +578,7 @@ static struct attribute *net_class_attrs
|
|
|
+@@ -581,6 +627,7 @@ static struct attribute *net_class_attrs
|
|
|
&dev_attr_flags.attr,
|
|
|
&dev_attr_tx_queue_len.attr,
|
|
|
&dev_attr_gro_flush_timeout.attr,
|