mirror of
https://github.com/hanwckf/immortalwrt-mt798x.git
synced 2025-01-09 02:43:53 +08:00
kernel: bump to 5.4.244
Refreshed all patches. Signed-off-by: Tianling Shen <cnsztl@immortalwrt.org>
This commit is contained in:
parent
8715c83b9d
commit
8d858460fe
@ -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
|
||||||
|
@ -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 */
|
||||||
|
@ -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);
|
||||||
|
@ -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);
|
||||||
|
@ -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 */
|
||||||
|
@ -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");
|
||||||
|
@ -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;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -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;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -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)
|
||||||
{
|
{
|
||||||
|
@ -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);
|
||||||
|
@ -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;
|
||||||
|
|
||||||
|
@ -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);
|
||||||
|
|
||||||
|
@ -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;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -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;
|
||||||
|
@ -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),
|
||||||
|
@ -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;
|
||||||
|
Loading…
x
Reference in New Issue
Block a user