kernel/4.9: refresh all patches

This commit is contained in:
CN_SZTL 2020-03-11 00:46:32 +08:00
parent 4b0ab60da2
commit 2515a5e031
No known key found for this signature in database
GPG Key ID: 6850B6345C862176
14 changed files with 76 additions and 108 deletions

View File

@ -17,7 +17,7 @@ Signed-off-by: Felix Fietkau <nbd@nbd.name>
depends on NETFILTER_ADVANCED
help
H.323 is a VoIP signalling protocol from ITU-T. As one of the most
@@ -968,7 +967,6 @@ config NETFILTER_XT_TARGET_SECMARK
@@ -980,7 +979,6 @@ config NETFILTER_XT_TARGET_SECMARK
config NETFILTER_XT_TARGET_TCPMSS
tristate '"TCPMSS" target support'

View File

@ -83,7 +83,7 @@ Signed-off-by: Felix Fietkau <nbd@nbd.name>
EXPORT_SYMBOL(default_qdisc_ops);
/* Main transmission queue. */
@@ -764,7 +764,7 @@ static void attach_one_default_qdisc(str
@@ -772,7 +772,7 @@ static void attach_one_default_qdisc(str
void *_unused)
{
struct Qdisc *qdisc;

View File

@ -10,7 +10,7 @@ Signed-off-by: Felix Fietkau <nbd@nbd.name>
--- a/net/sched/sch_generic.c
+++ b/net/sched/sch_generic.c
@@ -449,146 +449,6 @@ struct Qdisc_ops noqueue_qdisc_ops __rea
@@ -457,146 +457,6 @@ struct Qdisc_ops noqueue_qdisc_ops __rea
.owner = THIS_MODULE,
};

View File

@ -186,7 +186,7 @@
+extern struct list_head __mdio_board_list;
--- a/drivers/net/Makefile
+++ b/drivers/net/Makefile
@@ -17,7 +17,7 @@ obj-$(CONFIG_MII) += mii.o
@@ -18,7 +18,7 @@ obj-$(CONFIG_MII) += mii.o
obj-$(CONFIG_MDIO) += mdio.o
obj-$(CONFIG_NET) += Space.o loopback.o
obj-$(CONFIG_NETCONSOLE) += netconsole.o

View File

@ -56,7 +56,7 @@ Signed-off-by: Felix Fietkau <nbd@nbd.name>
*/
--- a/include/linux/skbuff.h
+++ b/include/linux/skbuff.h
@@ -2340,6 +2340,10 @@ static inline int pskb_trim(struct sk_bu
@@ -2359,6 +2359,10 @@ static inline int pskb_trim(struct sk_bu
return (len < skb->len) ? __pskb_trim(skb, len) : 0;
}
@ -67,7 +67,7 @@ Signed-off-by: Felix Fietkau <nbd@nbd.name>
/**
* pskb_trim_unique - remove end from a paged unique (not cloned) buffer
* @skb: buffer to alter
@@ -2460,16 +2464,6 @@ static inline struct sk_buff *dev_alloc_
@@ -2479,16 +2483,6 @@ static inline struct sk_buff *dev_alloc_
}
@ -101,8 +101,8 @@ Signed-off-by: Felix Fietkau <nbd@nbd.name>
help
--- a/net/core/dev.c
+++ b/net/core/dev.c
@@ -2972,10 +2972,20 @@ static int xmit_one(struct sk_buff *skb,
if (!list_empty(&ptype_all) || !list_empty(&dev->ptype_all))
@@ -2980,10 +2980,20 @@ static int xmit_one(struct sk_buff *skb,
#endif
dev_queue_xmit_nit(skb, dev);
- len = skb->len;
@ -136,7 +136,7 @@ Signed-off-by: Felix Fietkau <nbd@nbd.name>
#include <net/protocol.h>
#include <net/dst.h>
@@ -533,6 +534,22 @@ skb_fail:
@@ -614,6 +615,22 @@ skb_fail:
}
EXPORT_SYMBOL(__napi_alloc_skb);

View File

@ -24,13 +24,11 @@ Signed-off-by: Murat Sezgin <msezgin@codeaurora.org>
net/netfilter/nf_conntrack_proto_tcp.c | 10 ++++++++++
4 files changed, 41 insertions(+)
diff --git a/include/linux/skbuff.h b/include/linux/skbuff.h
index 9a0c945..56f4007 100644
--- a/include/linux/skbuff.h
+++ b/include/linux/skbuff.h
@@ -738,6 +738,9 @@ struct sk_buff {
#endif
@@ -753,6 +753,9 @@ struct sk_buff {
__u8 ipvs_property:1;
__u8 inner_protocol_type:1;
+#ifdef CONFIG_SHORTCUT_FE
+ __u8 fast_forwarded:1;
@ -38,8 +36,6 @@ index 9a0c945..56f4007 100644
__u8 remcsum_offload:1;
#ifdef CONFIG_NET_SWITCHDEV
__u8 offload_fwd_mark:1;
diff --git a/net/Kconfig b/net/Kconfig
index b4621e1..6ba72cf 100644
--- a/net/Kconfig
+++ b/net/Kconfig
@@ -444,3 +444,6 @@ config HAVE_CBPF_JIT
@ -49,11 +45,9 @@ index b4621e1..6ba72cf 100644
+
+config SHORTCUT_FE
+ bool "Enables kernel network stack path for Shortcut Forwarding Engine"
diff --git a/net/core/dev.c b/net/core/dev.c
index ca39cd2..74cd937 100644
--- a/net/core/dev.c
+++ b/net/core/dev.c
@@ -2929,8 +2929,17 @@ static int xmit_one(struct sk_buff *skb, struct net_device *dev,
@@ -2972,6 +2972,12 @@ static int xmit_one(struct sk_buff *skb,
unsigned int len;
int rc;
@ -63,7 +57,12 @@ index ca39cd2..74cd937 100644
+ */
+ if (!skb->fast_forwarded) {
+#endif
#if defined(CONFIG_IMQ) || defined(CONFIG_IMQ_MODULE)
if ((!list_empty(&ptype_all) || !list_empty(&dev->ptype_all)) &&
!(skb->imq_flags & IMQ_F_ENQUEUE))
@@ -2979,6 +2985,9 @@ static int xmit_one(struct sk_buff *skb,
if (!list_empty(&ptype_all) || !list_empty(&dev->ptype_all))
#endif
dev_queue_xmit_nit(skb, dev);
+#ifdef CONFIG_SHORTCUT_FE
+ }
@ -71,7 +70,7 @@ index ca39cd2..74cd937 100644
#ifdef CONFIG_ETHERNET_PACKET_MANGLE
if (!dev->eth_mangle_tx ||
@@ -4061,6 +4070,11 @@ void netdev_rx_handler_unregister(struct net_device *dev)
@@ -4130,6 +4139,11 @@ void netdev_rx_handler_unregister(struct
}
EXPORT_SYMBOL_GPL(netdev_rx_handler_unregister);
@ -83,7 +82,7 @@ index ca39cd2..74cd937 100644
/*
* Limit the use of PFMEMALLOC reserves to those protocols that implement
* the special handling of PFMEMALLOC skbs.
@@ -4108,6 +4122,9 @@ static int __netif_receive_skb_core(struct sk_buff *skb, bool pfmemalloc)
@@ -4177,6 +4191,9 @@ static int __netif_receive_skb_core(stru
bool deliver_exact = false;
int ret = NET_RX_DROP;
__be16 type;
@ -93,7 +92,7 @@ index ca39cd2..74cd937 100644
net_timestamp_check(!netdev_tstamp_prequeue, skb);
@@ -4134,6 +4151,14 @@ static int __netif_receive_skb_core(struct sk_buff *skb, bool pfmemalloc)
@@ -4203,6 +4220,14 @@ another_round:
goto out;
}
@ -108,8 +107,6 @@ index ca39cd2..74cd937 100644
#ifdef CONFIG_NET_CLS_ACT
if (skb->tc_verd & TC_NCLS) {
skb->tc_verd = CLR_TC_NCLS(skb->tc_verd);
diff --git a/net/netfilter/nf_conntrack_proto_tcp.c b/net/netfilter/nf_conntrack_proto_tcp.c
index f24b626..4581481 100644
--- a/net/netfilter/nf_conntrack_proto_tcp.c
+++ b/net/netfilter/nf_conntrack_proto_tcp.c
@@ -34,12 +34,22 @@
@ -135,6 +132,3 @@ index f24b626..4581481 100644
/* If it is set to zero, we disable picking up already established
connections. */
--
2.7.4

View File

@ -24,8 +24,6 @@ Signed-off-by: Murat Sezgin <msezgin@codeaurora.org>
net/bridge/br_if.c | 25 +++++++++++++++++++++++++
2 files changed, 26 insertions(+)
diff --git a/include/linux/if_bridge.h b/include/linux/if_bridge.h
index 0911c8c..4473f62 100644
--- a/include/linux/if_bridge.h
+++ b/include/linux/if_bridge.h
@@ -52,6 +52,7 @@ struct br_ip_list {
@ -36,11 +34,9 @@ index 0911c8c..4473f62 100644
typedef int br_should_route_hook_t(struct sk_buff *skb);
extern br_should_route_hook_t __rcu *br_should_route_hook;
diff --git a/net/bridge/br_if.c b/net/bridge/br_if.c
index ed0dd33..342b2d9 100644
--- a/net/bridge/br_if.c
+++ b/net/bridge/br_if.c
@@ -655,3 +655,28 @@ void br_port_flags_change(struct net_bridge_port *p, unsigned long mask)
@@ -654,3 +654,28 @@ void br_port_flags_change(struct net_bri
if (mask & BR_AUTO_MASK)
nbp_update_port_count(br);
}
@ -69,6 +65,3 @@ index ed0dd33..342b2d9 100644
+ u64_stats_update_end(&stats->syncp);
+}
+EXPORT_SYMBOL_GPL(br_dev_update_stats);
--
2.7.4

View File

@ -20,8 +20,6 @@ Signed-off-by: Zhi Chen <zhichen@codeaurora.org>
net/netfilter/nf_conntrack_netlink.c | 19 ++++++
6 files changed, 139 insertions(+), 1 deletion(-)
diff --git a/include/net/netfilter/nf_conntrack_ecache.h b/include/net/netfilter/nf_conntrack_ecache.h
index 12d967b..c2b98b6 100644
--- a/include/net/netfilter/nf_conntrack_ecache.h
+++ b/include/net/netfilter/nf_conntrack_ecache.h
@@ -70,6 +70,10 @@ struct nf_ct_event {
@ -35,7 +33,7 @@ index 12d967b..c2b98b6 100644
struct nf_ct_event_notifier {
int (*fcn)(unsigned int events, struct nf_ct_event *item);
};
@@ -78,6 +82,7 @@ int nf_conntrack_register_notifier(struct net *net,
@@ -78,6 +82,7 @@ int nf_conntrack_register_notifier(struc
struct nf_ct_event_notifier *nb);
void nf_conntrack_unregister_notifier(struct net *net,
struct nf_ct_event_notifier *nb);
@ -43,7 +41,7 @@ index 12d967b..c2b98b6 100644
void nf_ct_deliver_cached_events(struct nf_conn *ct);
int nf_conntrack_eventmask_report(unsigned int eventmask, struct nf_conn *ct,
@@ -86,11 +91,13 @@ int nf_conntrack_eventmask_report(unsigned int eventmask, struct nf_conn *ct,
@@ -86,11 +91,13 @@ int nf_conntrack_eventmask_report(unsign
static inline void
nf_conntrack_event_cache(enum ip_conntrack_events event, struct nf_conn *ct)
{
@ -71,7 +69,7 @@ index 12d967b..c2b98b6 100644
return nf_conntrack_eventmask_report(1 << event, ct, portid, report);
}
@@ -114,10 +123,12 @@ nf_conntrack_event_report(enum ip_conntrack_events event, struct nf_conn *ct,
@@ -114,10 +123,12 @@ nf_conntrack_event_report(enum ip_conntr
static inline int
nf_conntrack_event(enum ip_conntrack_events event, struct nf_conn *ct)
{
@ -84,8 +82,6 @@ index 12d967b..c2b98b6 100644
return nf_conntrack_eventmask_report(1 << event, ct, 0, 0);
}
diff --git a/include/net/netns/conntrack.h b/include/net/netns/conntrack.h
index e469e85..1d31db8 100644
--- a/include/net/netns/conntrack.h
+++ b/include/net/netns/conntrack.h
@@ -86,7 +86,11 @@ struct netns_ct {
@ -100,8 +96,6 @@ index e469e85..1d31db8 100644
struct nf_exp_event_notifier __rcu *nf_expect_event_cb;
struct nf_ip_net nf_ct_proto;
#if defined(CONFIG_NF_CONNTRACK_LABELS)
diff --git a/net/netfilter/Kconfig b/net/netfilter/Kconfig
index 63073be..08d7aab 100644
--- a/net/netfilter/Kconfig
+++ b/net/netfilter/Kconfig
@@ -136,6 +136,14 @@ config NF_CONNTRACK_TIMEOUT
@ -119,11 +113,9 @@ index 63073be..08d7aab 100644
config NF_CONNTRACK_TIMESTAMP
bool 'Connection tracking timestamping'
depends on NETFILTER_ADVANCED
diff --git a/net/netfilter/nf_conntrack_core.c b/net/netfilter/nf_conntrack_core.c
index 6bd1508..9b81c7c 100644
--- a/net/netfilter/nf_conntrack_core.c
+++ b/net/netfilter/nf_conntrack_core.c
@@ -1998,6 +1998,10 @@ int nf_conntrack_init_net(struct net *net)
@@ -2077,6 +2077,10 @@ int nf_conntrack_init_net(struct net *ne
ret = nf_conntrack_proto_pernet_init(net);
if (ret < 0)
goto err_proto;
@ -134,8 +126,6 @@ index 6bd1508..9b81c7c 100644
return 0;
err_proto:
diff --git a/net/netfilter/nf_conntrack_ecache.c b/net/netfilter/nf_conntrack_ecache.c
index da9df2d..e0e2a8f 100644
--- a/net/netfilter/nf_conntrack_ecache.c
+++ b/net/netfilter/nf_conntrack_ecache.c
@@ -18,6 +18,9 @@
@ -148,7 +138,7 @@ index da9df2d..e0e2a8f 100644
#include <linux/kernel.h>
#include <linux/netdevice.h>
#include <linux/slab.h>
@@ -117,6 +120,38 @@ static void ecache_work(struct work_struct *work)
@@ -117,6 +120,38 @@ static void ecache_work(struct work_stru
schedule_delayed_work(&ctnet->ecache_dwork, delay);
}
@ -187,7 +177,7 @@ index da9df2d..e0e2a8f 100644
int nf_conntrack_eventmask_report(unsigned int eventmask, struct nf_conn *ct,
u32 portid, int report)
{
@@ -171,10 +206,52 @@ int nf_conntrack_eventmask_report(unsigned int eventmask, struct nf_conn *ct,
@@ -171,10 +206,52 @@ out_unlock:
rcu_read_unlock();
return ret;
}
@ -240,7 +230,7 @@ index da9df2d..e0e2a8f 100644
void nf_ct_deliver_cached_events(struct nf_conn *ct)
{
struct net *net = nf_ct_net(ct);
@@ -225,6 +302,7 @@ void nf_ct_deliver_cached_events(struct nf_conn *ct)
@@ -225,6 +302,7 @@ void nf_ct_deliver_cached_events(struct
out_unlock:
rcu_read_unlock();
}
@ -248,7 +238,7 @@ index da9df2d..e0e2a8f 100644
EXPORT_SYMBOL_GPL(nf_ct_deliver_cached_events);
void nf_ct_expect_event_report(enum ip_conntrack_expect_events event,
@@ -257,6 +335,12 @@ void nf_ct_expect_event_report(enum ip_conntrack_expect_events event,
@@ -257,6 +335,12 @@ out_unlock:
rcu_read_unlock();
}
@ -261,7 +251,7 @@ index da9df2d..e0e2a8f 100644
int nf_conntrack_register_notifier(struct net *net,
struct nf_ct_event_notifier *new)
{
@@ -277,8 +361,15 @@ int nf_conntrack_register_notifier(struct net *net,
@@ -277,8 +361,15 @@ out_unlock:
mutex_unlock(&nf_ct_ecache_mutex);
return ret;
}
@ -277,16 +267,14 @@ index da9df2d..e0e2a8f 100644
void nf_conntrack_unregister_notifier(struct net *net,
struct nf_ct_event_notifier *new)
{
@@ -291,6 +382,7 @@ void nf_conntrack_unregister_notifier(struct net *net,
RCU_INIT_POINTER(net->ct.nf_conntrack_event_cb, NULL);
@@ -292,6 +383,7 @@ void nf_conntrack_unregister_notifier(st
mutex_unlock(&nf_ct_ecache_mutex);
/* synchronize_rcu() is called from ctnetlink_exit. */
}
+#endif
EXPORT_SYMBOL_GPL(nf_conntrack_unregister_notifier);
int nf_ct_expect_register_notifier(struct net *net,
diff --git a/net/netfilter/nf_conntrack_netlink.c b/net/netfilter/nf_conntrack_netlink.c
index 04111c1..8c741f7 100644
--- a/net/netfilter/nf_conntrack_netlink.c
+++ b/net/netfilter/nf_conntrack_netlink.c
@@ -28,6 +28,11 @@
@ -299,9 +287,9 @@ index 04111c1..8c741f7 100644
+#endif
+
#include <linux/slab.h>
#include <linux/siphash.h>
#include <linux/netfilter.h>
@@ -615,14 +620,22 @@ static size_t ctnetlink_nlmsg_size(const struct nf_conn *ct)
@@ -618,14 +623,22 @@ static size_t ctnetlink_nlmsg_size(const
;
}
@ -324,7 +312,7 @@ index 04111c1..8c741f7 100644
struct nf_conn *ct = item->ct;
struct sk_buff *skb;
unsigned int type;
@@ -3260,9 +3273,15 @@ static int ctnetlink_stat_exp_cpu(struct net *net, struct sock *ctnl,
@@ -3288,9 +3301,15 @@ static int ctnetlink_stat_exp_cpu(struct
}
#ifdef CONFIG_NF_CONNTRACK_EVENTS
@ -340,6 +328,3 @@ index 04111c1..8c741f7 100644
static struct nf_exp_event_notifier ctnl_notifier_exp = {
.fcn = ctnetlink_expect_event,
--
2.7.4

View File

@ -11,7 +11,7 @@ Signed-off-by: Felix Fietkau <nbd@nbd.name>
--- a/drivers/mtd/redboot.c
+++ b/drivers/mtd/redboot.c
@@ -265,14 +265,21 @@ static int parse_redboot_partitions(stru
@@ -266,14 +266,21 @@ static int parse_redboot_partitions(stru
#endif
names += strlen(names)+1;

View File

@ -1411,7 +1411,7 @@
+
--- a/include/linux/netdevice.h
+++ b/include/linux/netdevice.h
@@ -3669,6 +3669,19 @@ static inline void netif_tx_unlock_bh(struct net_device *dev)
@@ -3694,6 +3694,19 @@ static inline void netif_tx_unlock_bh(st
} \
}
@ -1482,7 +1482,7 @@
/* The interface for checksum offload between the stack and networking drivers
* is as follows...
@@ -654,6 +658,9 @@ struct sk_buff {
@@ -660,6 +664,9 @@ struct sk_buff {
* first. This is owned by whoever has the skb queued ATM.
*/
char cb[48] __aligned(8);
@ -1492,7 +1492,7 @@
unsigned long _skb_refdst;
void (*destructor)(struct sk_buff *skb);
@@ -663,6 +670,9 @@ struct sk_buff {
@@ -669,6 +676,9 @@ struct sk_buff {
#if defined(CONFIG_NF_CONNTRACK) || defined(CONFIG_NF_CONNTRACK_MODULE)
struct nf_conntrack *nfct;
#endif
@ -1502,9 +1502,9 @@
#if IS_ENABLED(CONFIG_BRIDGE_NETFILTER)
struct nf_bridge_info *nf_bridge;
#endif
@@ -743,6 +753,9 @@ struct sk_buff {
__u8 gro_skip:1;
/* 1, 3 or 4 bit hole */
@@ -749,6 +759,9 @@ struct sk_buff {
#endif
/* 2, 4 or 5 bit hole */
+#if defined(CONFIG_IMQ) || defined(CONFIG_IMQ_MODULE)
+ __u8 imq_flags:IMQ_F_BITS;
@ -1512,7 +1512,7 @@
#ifdef CONFIG_NET_SCHED
__u16 tc_index; /* traffic control index */
#ifdef CONFIG_NET_CLS_ACT
@@ -903,6 +916,12 @@ void kfree_skb_list(struct sk_buff *segs);
@@ -908,6 +921,12 @@ void kfree_skb_list(struct sk_buff *segs
void skb_tx_error(struct sk_buff *skb);
void consume_skb(struct sk_buff *skb);
void __kfree_skb(struct sk_buff *skb);
@ -1525,7 +1525,7 @@
extern struct kmem_cache *skbuff_head_cache;
void kfree_skb_partial(struct sk_buff *skb, bool head_stolen);
@@ -3594,6 +3613,10 @@ static inline void __nf_copy(struct sk_buff *dst, const struct sk_buff *src,
@@ -3628,6 +3647,10 @@ static inline void __nf_copy(struct sk_b
if (copy)
dst->nfctinfo = src->nfctinfo;
#endif
@ -1553,7 +1553,7 @@
void nf_queue_entry_release_refs(struct nf_queue_entry *entry);
--- a/include/net/pkt_sched.h
+++ b/include/net/pkt_sched.h
@@ -105,6 +105,8 @@ int sch_direct_xmit(struct sk_buff *skb, struct Qdisc *q,
@@ -105,6 +105,8 @@ int sch_direct_xmit(struct sk_buff *skb,
void __qdisc_run(struct Qdisc *q);
@ -1564,7 +1564,7 @@
if (qdisc_run_begin(q))
--- a/include/net/sch_generic.h
+++ b/include/net/sch_generic.h
@@ -518,6 +518,13 @@ static inline int qdisc_enqueue(struct sk_buff *skb, struct Qdisc *sch,
@@ -523,6 +523,13 @@ static inline int qdisc_enqueue(struct s
return sch->enqueue(skb, sch, to_free);
}
@ -1602,7 +1602,7 @@
#include "net-sysfs.h"
@@ -2906,7 +2909,12 @@ static int xmit_one(struct sk_buff *skb, struct net_device *dev,
@@ -2969,7 +2972,12 @@ static int xmit_one(struct sk_buff *skb,
unsigned int len;
int rc;
@ -1615,7 +1615,7 @@
dev_queue_xmit_nit(skb, dev);
len = skb->len;
@@ -2945,6 +2953,8 @@ struct sk_buff *dev_hard_start_xmit(struct sk_buff *first, struct net_device *de
@@ -3008,6 +3016,8 @@ out:
return skb;
}
@ -1626,7 +1626,7 @@
{
--- a/net/core/skbuff.c
+++ b/net/core/skbuff.c
@@ -82,6 +82,87 @@ struct kmem_cache *skbuff_head_cache __read_mostly;
@@ -82,6 +82,87 @@ struct kmem_cache *skbuff_head_cache __r
static struct kmem_cache *skbuff_fclone_cache __read_mostly;
int sysctl_max_skb_frags __read_mostly = MAX_SKB_FRAGS;
EXPORT_SYMBOL(sysctl_max_skb_frags);
@ -1714,7 +1714,7 @@
/**
* skb_panic - private function for out-of-line support
@@ -654,6 +735,28 @@ static void skb_release_head_state(struct sk_buff *skb)
@@ -658,6 +739,28 @@ static void skb_release_head_state(struc
WARN_ON(in_irq());
skb->destructor(skb);
}
@ -1743,7 +1743,7 @@
#if IS_ENABLED(CONFIG_NF_CONNTRACK)
nf_conntrack_put(skb->nfct);
#endif
@@ -843,6 +946,10 @@ static void __copy_skb_header(struct sk_buff *new, const struct sk_buff *old)
@@ -847,6 +950,10 @@ static void __copy_skb_header(struct sk_
new->sp = secpath_get(old->sp);
#endif
__nf_copy(new, old, false);
@ -1754,7 +1754,7 @@
/* Note : this field could be in headers_start/headers_end section
* It is not yet because we do not want to have a 16 bit hole
@@ -3464,6 +3571,13 @@ void __init skb_init(void)
@@ -3521,6 +3628,13 @@ void __init skb_init(void)
0,
SLAB_HWCACHE_ALIGN|SLAB_PANIC,
NULL);
@ -1767,10 +1767,10 @@
+#endif
}
/**
static int
--- a/net/ipv6/ip6_output.c
+++ b/net/ipv6/ip6_output.c
@@ -66,9 +66,6 @@ static int ip6_finish_output2(struct net *net, struct sock *sk, struct sk_buff *
@@ -66,9 +66,6 @@ static int ip6_finish_output2(struct net
struct in6_addr *nexthop;
int ret;
@ -1780,7 +1780,7 @@
if (ipv6_addr_is_multicast(&ipv6_hdr(skb)->daddr)) {
struct inet6_dev *idev = ip6_dst_idev(skb_dst(skb));
@@ -150,6 +147,13 @@ int ip6_output(struct net *net, struct sock *sk, struct sk_buff *skb)
@@ -150,6 +147,13 @@ int ip6_output(struct net *net, struct s
return 0;
}
@ -1796,7 +1796,7 @@
ip6_finish_output,
--- a/net/netfilter/core.c
+++ b/net/netfilter/core.c
@@ -360,8 +360,11 @@ int nf_hook_slow(struct sk_buff *skb, struct nf_hook_state *state)
@@ -360,8 +360,11 @@ next_hook:
ret = NF_DROP_GETERR(verdict);
if (ret == 0)
ret = -EPERM;
@ -1808,10 +1808,10 @@
+ goto next_hook;
if (ret == 1 && entry)
goto next_hook;
}
} else {
--- a/net/netfilter/Kconfig
+++ b/net/netfilter/Kconfig
@@ -833,6 +833,18 @@ config NETFILTER_XT_TARGET_LOG
@@ -835,6 +835,18 @@ config NETFILTER_XT_TARGET_LOG
To compile it as a module, choose M here. If unsure, say N.
@ -1832,7 +1832,7 @@
depends on NETFILTER_ADVANCED
--- a/net/netfilter/Makefile
+++ b/net/netfilter/Makefile
@@ -119,6 +119,7 @@ obj-$(CONFIG_NETFILTER_XT_TARGET_CT) += xt_CT.o
@@ -122,6 +122,7 @@ obj-$(CONFIG_NETFILTER_XT_TARGET_CT) +=
obj-$(CONFIG_NETFILTER_XT_TARGET_DSCP) += xt_DSCP.o
obj-$(CONFIG_NETFILTER_XT_TARGET_HL) += xt_HL.o
obj-$(CONFIG_NETFILTER_XT_TARGET_HMARK) += xt_HMARK.o
@ -1866,7 +1866,7 @@
/* return EBUSY when somebody else is registered, return EEXIST if the
* same handler is registered, return 0 in case of success. */
void nf_register_queue_handler(struct net *net, const struct nf_queue_handler *qh)
@@ -108,16 +125,28 @@ void nf_queue_nf_hook_drop(struct net *net, const struct nf_hook_entry *entry)
@@ -108,16 +125,28 @@ void nf_queue_nf_hook_drop(struct net *n
}
static int __nf_queue(struct sk_buff *skb, const struct nf_hook_state *state,
@ -1897,7 +1897,7 @@
if (!qh) {
status = -ESRCH;
goto err;
@@ -164,8 +193,14 @@ int nf_queue(struct sk_buff *skb, struct nf_hook_state *state,
@@ -164,8 +193,14 @@ int nf_queue(struct sk_buff *skb, struct
int ret;
RCU_INIT_POINTER(state->hook_entries, entry);
@ -1913,7 +1913,7 @@
if (ret == -ESRCH &&
(verdict & NF_VERDICT_FLAG_QUEUE_BYPASS)) {
*entryp = rcu_dereference(entry->next);
@@ -218,6 +253,7 @@ void nf_reinject(struct nf_queue_entry *entry, unsigned int verdict)
@@ -218,6 +253,7 @@ okfn:
local_bh_enable();
break;
case NF_QUEUE:
@ -1998,7 +1998,7 @@
+
--- a/net/sched/sch_generic.c
+++ b/net/sched/sch_generic.c
@@ -154,6 +154,14 @@ static struct sk_buff *dequeue_skb(struct Qdisc *q, bool *validate,
@@ -154,6 +154,14 @@ bulk:
return skb;
}

View File

@ -269,7 +269,7 @@
+#endif /*_IPT_WEBURL_H*/
--- a/net/ipv4/netfilter/Kconfig
+++ b/net/ipv4/netfilter/Kconfig
@@ -417,5 +417,25 @@ config IP_NF_ARP_MANGLE
@@ -406,5 +406,25 @@ config IP_NF_ARP_MANGLE
endif # IP_NF_ARPTABLES
@ -297,7 +297,7 @@
--- a/net/ipv4/netfilter/Makefile
+++ b/net/ipv4/netfilter/Makefile
@@ -55,6 +55,10 @@ obj-$(CONFIG_IP_NF_RAW) += iptable_raw.o
@@ -50,6 +50,10 @@ obj-$(CONFIG_IP_NF_RAW) += iptable_raw.o
obj-$(CONFIG_IP_NF_SECURITY) += iptable_security.o
# matches
@ -3908,7 +3908,6 @@
+module_init(init);
+module_exit(fini);
+
--- /dev/null
+++ b/net/ipv4/netfilter/ipt_bandwidth.mod.c
@@ -0,0 +1,20 @@
@ -4077,7 +4076,6 @@
+module_init(init);
+module_exit(fini);
+
--- /dev/null
+++ b/net/ipv4/netfilter/ipt_timerange.mod.c
@@ -0,0 +1,20 @@
@ -5423,7 +5421,6 @@
+
+module_init(init);
+module_exit(fini);
--- /dev/null
+++ b/net/ipv4/netfilter/ipt_weburl.c
@@ -0,0 +1,537 @@
@ -5964,7 +5961,6 @@
+
+module_init(init);
+module_exit(fini);
--- /dev/null
+++ b/net/ipv4/netfilter/ipt_weburl.mod.c
@@ -0,0 +1,20 @@

View File

@ -9,7 +9,7 @@ Signed-off-by: Felix Fietkau <nbd@nbd.name>
--- a/include/linux/skbuff.h
+++ b/include/linux/skbuff.h
@@ -2304,7 +2304,7 @@ static inline int pskb_network_may_pull(
@@ -2323,7 +2323,7 @@ static inline int pskb_network_may_pull(
* NET_IP_ALIGN(2) + ethernet_header(14) + IP_header(20/40) + ports(8)
*/
#ifndef NET_SKB_PAD

View File

@ -22,7 +22,7 @@ Signed-off-by: Felix Fietkau <nbd@nbd.name>
#endif
--- a/include/linux/skbuff.h
+++ b/include/linux/skbuff.h
@@ -747,7 +747,8 @@ struct sk_buff {
@@ -757,7 +757,8 @@ struct sk_buff {
#ifdef CONFIG_NET_SWITCHDEV
__u8 offload_fwd_mark:1;
#endif
@ -30,11 +30,11 @@ Signed-off-by: Felix Fietkau <nbd@nbd.name>
+ __u8 gro_skip:1;
+ /* 1, 3 or 4 bit hole */
#ifdef CONFIG_NET_SCHED
__u16 tc_index; /* traffic control index */
#if defined(CONFIG_IMQ) || defined(CONFIG_IMQ_MODULE)
__u8 imq_flags:IMQ_F_BITS;
--- a/net/core/dev.c
+++ b/net/core/dev.c
@@ -4572,6 +4572,9 @@ static enum gro_result dev_gro_receive(s
@@ -4582,6 +4582,9 @@ static enum gro_result dev_gro_receive(s
enum gro_result ret;
int grow;
@ -44,7 +44,7 @@ Signed-off-by: Felix Fietkau <nbd@nbd.name>
if (!(skb->dev->features & NETIF_F_GRO))
goto normal;
@@ -5867,6 +5870,48 @@ static void __netdev_adjacent_dev_unlink
@@ -5877,6 +5880,48 @@ static void __netdev_adjacent_dev_unlink
&upper_dev->adj_list.lower);
}
@ -93,7 +93,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)
@@ -5939,6 +5984,7 @@ static int __netdev_upper_dev_link(struc
@@ -5949,6 +5994,7 @@ static int __netdev_upper_dev_link(struc
goto rollback_lower_mesh;
}
@ -101,7 +101,7 @@ Signed-off-by: Felix Fietkau <nbd@nbd.name>
ret = call_netdevice_notifiers_info(NETDEV_CHANGEUPPER, dev,
&changeupper_info.info);
ret = notifier_to_errno(ret);
@@ -6065,6 +6111,7 @@ void netdev_upper_dev_unlink(struct net_
@@ -6075,6 +6121,7 @@ void netdev_upper_dev_unlink(struct net_
list_for_each_entry(i, &upper_dev->all_adj_list.upper, list)
__netdev_adjacent_dev_unlink(dev, i->dev, i->ref_nr);
@ -109,7 +109,7 @@ Signed-off-by: Felix Fietkau <nbd@nbd.name>
call_netdevice_notifiers_info(NETDEV_CHANGEUPPER, dev,
&changeupper_info.info);
}
@@ -6668,6 +6715,7 @@ int dev_set_mac_address(struct net_devic
@@ -6678,6 +6725,7 @@ int dev_set_mac_address(struct net_devic
if (err)
return err;
dev->addr_assign_type = NET_ADDR_SET;

View File

@ -60,8 +60,8 @@ Signed-off-by: Alexey Brodkin <abrodkin@synopsys.com>
+obj-$(CONFIG_LEDS_TRIGGER_NETDEV) += ledtrig-netdev.o
--- a/drivers/leds/trigger/Kconfig
+++ b/drivers/leds/trigger/Kconfig
@@ -126,4 +126,11 @@ config LEDS_TRIGGER_PANIC
a different trigger.
@@ -133,4 +133,11 @@ config LEDS_TRIGGER_NETDEV
This allows LEDs to be controlled by network device activity.
If unsure, say Y.
+config LEDS_TRIGGER_NETDEV