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 depends on NETFILTER_ADVANCED
help help
H.323 is a VoIP signalling protocol from ITU-T. As one of the most 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 config NETFILTER_XT_TARGET_TCPMSS
tristate '"TCPMSS" target support' tristate '"TCPMSS" target support'

View File

@ -83,7 +83,7 @@ Signed-off-by: Felix Fietkau <nbd@nbd.name>
EXPORT_SYMBOL(default_qdisc_ops); EXPORT_SYMBOL(default_qdisc_ops);
/* Main transmission queue. */ /* 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) void *_unused)
{ {
struct Qdisc *qdisc; struct Qdisc *qdisc;

View File

@ -10,7 +10,7 @@ Signed-off-by: Felix Fietkau <nbd@nbd.name>
--- a/net/sched/sch_generic.c --- a/net/sched/sch_generic.c
+++ b/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, .owner = THIS_MODULE,
}; };

View File

@ -186,7 +186,7 @@
+extern struct list_head __mdio_board_list; +extern struct list_head __mdio_board_list;
--- a/drivers/net/Makefile --- a/drivers/net/Makefile
+++ b/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_MDIO) += mdio.o
obj-$(CONFIG_NET) += Space.o loopback.o obj-$(CONFIG_NET) += Space.o loopback.o
obj-$(CONFIG_NETCONSOLE) += netconsole.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 --- a/include/linux/skbuff.h
+++ b/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; 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 * pskb_trim_unique - remove end from a paged unique (not cloned) buffer
* @skb: buffer to alter * @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 help
--- a/net/core/dev.c --- a/net/core/dev.c
+++ b/net/core/dev.c +++ b/net/core/dev.c
@@ -2972,10 +2972,20 @@ static int xmit_one(struct sk_buff *skb, @@ -2980,10 +2980,20 @@ 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); dev_queue_xmit_nit(skb, dev);
- len = skb->len; - len = skb->len;
@ -136,7 +136,7 @@ Signed-off-by: Felix Fietkau <nbd@nbd.name>
#include <net/protocol.h> #include <net/protocol.h>
#include <net/dst.h> #include <net/dst.h>
@@ -533,6 +534,22 @@ skb_fail: @@ -614,6 +615,22 @@ skb_fail:
} }
EXPORT_SYMBOL(__napi_alloc_skb); 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 ++++++++++ net/netfilter/nf_conntrack_proto_tcp.c | 10 ++++++++++
4 files changed, 41 insertions(+) 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 --- a/include/linux/skbuff.h
+++ b/include/linux/skbuff.h +++ b/include/linux/skbuff.h
@@ -738,6 +738,9 @@ struct sk_buff { @@ -753,6 +753,9 @@ struct sk_buff {
#endif
__u8 ipvs_property:1; __u8 ipvs_property:1;
__u8 inner_protocol_type:1; __u8 inner_protocol_type:1;
+#ifdef CONFIG_SHORTCUT_FE +#ifdef CONFIG_SHORTCUT_FE
+ __u8 fast_forwarded:1; + __u8 fast_forwarded:1;
@ -38,8 +36,6 @@ index 9a0c945..56f4007 100644
__u8 remcsum_offload:1; __u8 remcsum_offload:1;
#ifdef CONFIG_NET_SWITCHDEV #ifdef CONFIG_NET_SWITCHDEV
__u8 offload_fwd_mark:1; __u8 offload_fwd_mark:1;
diff --git a/net/Kconfig b/net/Kconfig
index b4621e1..6ba72cf 100644
--- a/net/Kconfig --- a/net/Kconfig
+++ b/net/Kconfig +++ b/net/Kconfig
@@ -444,3 +444,6 @@ config HAVE_CBPF_JIT @@ -444,3 +444,6 @@ config HAVE_CBPF_JIT
@ -49,11 +45,9 @@ index b4621e1..6ba72cf 100644
+ +
+config SHORTCUT_FE +config SHORTCUT_FE
+ bool "Enables kernel network stack path for Shortcut Forwarding Engine" + 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 --- a/net/core/dev.c
+++ b/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; unsigned int len;
int rc; int rc;
@ -63,7 +57,12 @@ index ca39cd2..74cd937 100644
+ */ + */
+ if (!skb->fast_forwarded) { + if (!skb->fast_forwarded) {
+#endif +#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)) if (!list_empty(&ptype_all) || !list_empty(&dev->ptype_all))
#endif
dev_queue_xmit_nit(skb, dev); dev_queue_xmit_nit(skb, dev);
+#ifdef CONFIG_SHORTCUT_FE +#ifdef CONFIG_SHORTCUT_FE
+ } + }
@ -71,7 +70,7 @@ index ca39cd2..74cd937 100644
#ifdef CONFIG_ETHERNET_PACKET_MANGLE #ifdef CONFIG_ETHERNET_PACKET_MANGLE
if (!dev->eth_mangle_tx || 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); 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 * Limit the use of PFMEMALLOC reserves to those protocols that implement
* the special handling of PFMEMALLOC skbs. * 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; bool deliver_exact = false;
int ret = NET_RX_DROP; int ret = NET_RX_DROP;
__be16 type; __be16 type;
@ -93,7 +92,7 @@ index ca39cd2..74cd937 100644
net_timestamp_check(!netdev_tstamp_prequeue, skb); 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; goto out;
} }
@ -108,8 +107,6 @@ index ca39cd2..74cd937 100644
#ifdef CONFIG_NET_CLS_ACT #ifdef CONFIG_NET_CLS_ACT
if (skb->tc_verd & TC_NCLS) { if (skb->tc_verd & TC_NCLS) {
skb->tc_verd = CLR_TC_NCLS(skb->tc_verd); 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 --- a/net/netfilter/nf_conntrack_proto_tcp.c
+++ b/net/netfilter/nf_conntrack_proto_tcp.c +++ b/net/netfilter/nf_conntrack_proto_tcp.c
@@ -34,12 +34,22 @@ @@ -34,12 +34,22 @@
@ -135,6 +132,3 @@ index f24b626..4581481 100644
/* If it is set to zero, we disable picking up already established /* If it is set to zero, we disable picking up already established
connections. */ connections. */
--
2.7.4

View File

@ -24,8 +24,6 @@ Signed-off-by: Murat Sezgin <msezgin@codeaurora.org>
net/bridge/br_if.c | 25 +++++++++++++++++++++++++ net/bridge/br_if.c | 25 +++++++++++++++++++++++++
2 files changed, 26 insertions(+) 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 --- a/include/linux/if_bridge.h
+++ b/include/linux/if_bridge.h +++ b/include/linux/if_bridge.h
@@ -52,6 +52,7 @@ struct br_ip_list { @@ -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); typedef int br_should_route_hook_t(struct sk_buff *skb);
extern br_should_route_hook_t __rcu *br_should_route_hook; 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 --- a/net/bridge/br_if.c
+++ b/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) if (mask & BR_AUTO_MASK)
nbp_update_port_count(br); nbp_update_port_count(br);
} }
@ -69,6 +65,3 @@ index ed0dd33..342b2d9 100644
+ u64_stats_update_end(&stats->syncp); + u64_stats_update_end(&stats->syncp);
+} +}
+EXPORT_SYMBOL_GPL(br_dev_update_stats); +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 ++++++ net/netfilter/nf_conntrack_netlink.c | 19 ++++++
6 files changed, 139 insertions(+), 1 deletion(-) 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 --- a/include/net/netfilter/nf_conntrack_ecache.h
+++ b/include/net/netfilter/nf_conntrack_ecache.h +++ b/include/net/netfilter/nf_conntrack_ecache.h
@@ -70,6 +70,10 @@ struct nf_ct_event { @@ -70,6 +70,10 @@ struct nf_ct_event {
@ -35,7 +33,7 @@ index 12d967b..c2b98b6 100644
struct nf_ct_event_notifier { struct nf_ct_event_notifier {
int (*fcn)(unsigned int events, struct nf_ct_event *item); 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); struct nf_ct_event_notifier *nb);
void nf_conntrack_unregister_notifier(struct net *net, void nf_conntrack_unregister_notifier(struct net *net,
struct nf_ct_event_notifier *nb); struct nf_ct_event_notifier *nb);
@ -43,7 +41,7 @@ index 12d967b..c2b98b6 100644
void nf_ct_deliver_cached_events(struct nf_conn *ct); void nf_ct_deliver_cached_events(struct nf_conn *ct);
int nf_conntrack_eventmask_report(unsigned int eventmask, 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 static inline void
nf_conntrack_event_cache(enum ip_conntrack_events event, struct nf_conn *ct) 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); 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 static inline int
nf_conntrack_event(enum ip_conntrack_events event, struct nf_conn *ct) 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); 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 --- a/include/net/netns/conntrack.h
+++ b/include/net/netns/conntrack.h +++ b/include/net/netns/conntrack.h
@@ -86,7 +86,11 @@ struct netns_ct { @@ -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_exp_event_notifier __rcu *nf_expect_event_cb;
struct nf_ip_net nf_ct_proto; struct nf_ip_net nf_ct_proto;
#if defined(CONFIG_NF_CONNTRACK_LABELS) #if defined(CONFIG_NF_CONNTRACK_LABELS)
diff --git a/net/netfilter/Kconfig b/net/netfilter/Kconfig
index 63073be..08d7aab 100644
--- a/net/netfilter/Kconfig --- a/net/netfilter/Kconfig
+++ b/net/netfilter/Kconfig +++ b/net/netfilter/Kconfig
@@ -136,6 +136,14 @@ config NF_CONNTRACK_TIMEOUT @@ -136,6 +136,14 @@ config NF_CONNTRACK_TIMEOUT
@ -119,11 +113,9 @@ index 63073be..08d7aab 100644
config NF_CONNTRACK_TIMESTAMP config NF_CONNTRACK_TIMESTAMP
bool 'Connection tracking timestamping' bool 'Connection tracking timestamping'
depends on NETFILTER_ADVANCED 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 --- a/net/netfilter/nf_conntrack_core.c
+++ b/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); ret = nf_conntrack_proto_pernet_init(net);
if (ret < 0) if (ret < 0)
goto err_proto; goto err_proto;
@ -134,8 +126,6 @@ index 6bd1508..9b81c7c 100644
return 0; return 0;
err_proto: 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 --- a/net/netfilter/nf_conntrack_ecache.c
+++ b/net/netfilter/nf_conntrack_ecache.c +++ b/net/netfilter/nf_conntrack_ecache.c
@@ -18,6 +18,9 @@ @@ -18,6 +18,9 @@
@ -148,7 +138,7 @@ index da9df2d..e0e2a8f 100644
#include <linux/kernel.h> #include <linux/kernel.h>
#include <linux/netdevice.h> #include <linux/netdevice.h>
#include <linux/slab.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); 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, int nf_conntrack_eventmask_report(unsigned int eventmask, struct nf_conn *ct,
u32 portid, int report) 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(); rcu_read_unlock();
return ret; return ret;
} }
@ -240,7 +230,7 @@ index da9df2d..e0e2a8f 100644
void nf_ct_deliver_cached_events(struct nf_conn *ct) void nf_ct_deliver_cached_events(struct nf_conn *ct)
{ {
struct net *net = nf_ct_net(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: out_unlock:
rcu_read_unlock(); rcu_read_unlock();
} }
@ -248,7 +238,7 @@ index da9df2d..e0e2a8f 100644
EXPORT_SYMBOL_GPL(nf_ct_deliver_cached_events); EXPORT_SYMBOL_GPL(nf_ct_deliver_cached_events);
void nf_ct_expect_event_report(enum ip_conntrack_expect_events event, 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(); rcu_read_unlock();
} }
@ -261,7 +251,7 @@ index da9df2d..e0e2a8f 100644
int nf_conntrack_register_notifier(struct net *net, int nf_conntrack_register_notifier(struct net *net,
struct nf_ct_event_notifier *new) 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); mutex_unlock(&nf_ct_ecache_mutex);
return ret; return ret;
} }
@ -277,16 +267,14 @@ index da9df2d..e0e2a8f 100644
void nf_conntrack_unregister_notifier(struct net *net, void nf_conntrack_unregister_notifier(struct net *net,
struct nf_ct_event_notifier *new) struct nf_ct_event_notifier *new)
{ {
@@ -291,6 +382,7 @@ void nf_conntrack_unregister_notifier(struct net *net, @@ -292,6 +383,7 @@ void nf_conntrack_unregister_notifier(st
RCU_INIT_POINTER(net->ct.nf_conntrack_event_cb, NULL);
mutex_unlock(&nf_ct_ecache_mutex); mutex_unlock(&nf_ct_ecache_mutex);
/* synchronize_rcu() is called from ctnetlink_exit. */
} }
+#endif +#endif
EXPORT_SYMBOL_GPL(nf_conntrack_unregister_notifier); EXPORT_SYMBOL_GPL(nf_conntrack_unregister_notifier);
int nf_ct_expect_register_notifier(struct net *net, 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 --- a/net/netfilter/nf_conntrack_netlink.c
+++ b/net/netfilter/nf_conntrack_netlink.c +++ b/net/netfilter/nf_conntrack_netlink.c
@@ -28,6 +28,11 @@ @@ -28,6 +28,11 @@
@ -299,9 +287,9 @@ index 04111c1..8c741f7 100644
+#endif +#endif
+ +
#include <linux/slab.h> #include <linux/slab.h>
#include <linux/siphash.h>
#include <linux/netfilter.h> @@ -618,14 +623,22 @@ static size_t ctnetlink_nlmsg_size(const
@@ -615,14 +620,22 @@ static size_t ctnetlink_nlmsg_size(const struct nf_conn *ct)
; ;
} }
@ -324,7 +312,7 @@ index 04111c1..8c741f7 100644
struct nf_conn *ct = item->ct; struct nf_conn *ct = item->ct;
struct sk_buff *skb; struct sk_buff *skb;
unsigned int type; 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 #ifdef CONFIG_NF_CONNTRACK_EVENTS
@ -340,6 +328,3 @@ index 04111c1..8c741f7 100644
static struct nf_exp_event_notifier ctnl_notifier_exp = { static struct nf_exp_event_notifier ctnl_notifier_exp = {
.fcn = ctnetlink_expect_event, .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 --- a/drivers/mtd/redboot.c
+++ b/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 #endif
names += strlen(names)+1; names += strlen(names)+1;

View File

@ -1411,7 +1411,7 @@
+ +
--- a/include/linux/netdevice.h --- a/include/linux/netdevice.h
+++ b/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 /* The interface for checksum offload between the stack and networking drivers
* is as follows... * 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. * first. This is owned by whoever has the skb queued ATM.
*/ */
char cb[48] __aligned(8); char cb[48] __aligned(8);
@ -1492,7 +1492,7 @@
unsigned long _skb_refdst; unsigned long _skb_refdst;
void (*destructor)(struct sk_buff *skb); 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) #if defined(CONFIG_NF_CONNTRACK) || defined(CONFIG_NF_CONNTRACK_MODULE)
struct nf_conntrack *nfct; struct nf_conntrack *nfct;
#endif #endif
@ -1502,9 +1502,9 @@
#if IS_ENABLED(CONFIG_BRIDGE_NETFILTER) #if IS_ENABLED(CONFIG_BRIDGE_NETFILTER)
struct nf_bridge_info *nf_bridge; struct nf_bridge_info *nf_bridge;
#endif #endif
@@ -743,6 +753,9 @@ struct sk_buff { @@ -749,6 +759,9 @@ struct sk_buff {
__u8 gro_skip:1; #endif
/* 1, 3 or 4 bit hole */ /* 2, 4 or 5 bit hole */
+#if defined(CONFIG_IMQ) || defined(CONFIG_IMQ_MODULE) +#if defined(CONFIG_IMQ) || defined(CONFIG_IMQ_MODULE)
+ __u8 imq_flags:IMQ_F_BITS; + __u8 imq_flags:IMQ_F_BITS;
@ -1512,7 +1512,7 @@
#ifdef CONFIG_NET_SCHED #ifdef CONFIG_NET_SCHED
__u16 tc_index; /* traffic control index */ __u16 tc_index; /* traffic control index */
#ifdef CONFIG_NET_CLS_ACT #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 skb_tx_error(struct sk_buff *skb);
void consume_skb(struct sk_buff *skb); void consume_skb(struct sk_buff *skb);
void __kfree_skb(struct sk_buff *skb); void __kfree_skb(struct sk_buff *skb);
@ -1525,7 +1525,7 @@
extern struct kmem_cache *skbuff_head_cache; extern struct kmem_cache *skbuff_head_cache;
void kfree_skb_partial(struct sk_buff *skb, bool head_stolen); 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) if (copy)
dst->nfctinfo = src->nfctinfo; dst->nfctinfo = src->nfctinfo;
#endif #endif
@ -1553,7 +1553,7 @@
void nf_queue_entry_release_refs(struct nf_queue_entry *entry); void nf_queue_entry_release_refs(struct nf_queue_entry *entry);
--- a/include/net/pkt_sched.h --- a/include/net/pkt_sched.h
+++ b/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); void __qdisc_run(struct Qdisc *q);
@ -1564,7 +1564,7 @@
if (qdisc_run_begin(q)) if (qdisc_run_begin(q))
--- a/include/net/sch_generic.h --- a/include/net/sch_generic.h
+++ b/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); return sch->enqueue(skb, sch, to_free);
} }
@ -1602,7 +1602,7 @@
#include "net-sysfs.h" #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; unsigned int len;
int rc; int rc;
@ -1615,7 +1615,7 @@
dev_queue_xmit_nit(skb, dev); dev_queue_xmit_nit(skb, dev);
len = skb->len; 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; return skb;
} }
@ -1626,7 +1626,7 @@
{ {
--- a/net/core/skbuff.c --- a/net/core/skbuff.c
+++ b/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; static struct kmem_cache *skbuff_fclone_cache __read_mostly;
int sysctl_max_skb_frags __read_mostly = MAX_SKB_FRAGS; int sysctl_max_skb_frags __read_mostly = MAX_SKB_FRAGS;
EXPORT_SYMBOL(sysctl_max_skb_frags); EXPORT_SYMBOL(sysctl_max_skb_frags);
@ -1714,7 +1714,7 @@
/** /**
* skb_panic - private function for out-of-line support * 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()); WARN_ON(in_irq());
skb->destructor(skb); skb->destructor(skb);
} }
@ -1743,7 +1743,7 @@
#if IS_ENABLED(CONFIG_NF_CONNTRACK) #if IS_ENABLED(CONFIG_NF_CONNTRACK)
nf_conntrack_put(skb->nfct); nf_conntrack_put(skb->nfct);
#endif #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); new->sp = secpath_get(old->sp);
#endif #endif
__nf_copy(new, old, false); __nf_copy(new, old, false);
@ -1754,7 +1754,7 @@
/* Note : this field could be in headers_start/headers_end section /* 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 * 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, 0,
SLAB_HWCACHE_ALIGN|SLAB_PANIC, SLAB_HWCACHE_ALIGN|SLAB_PANIC,
NULL); NULL);
@ -1767,10 +1767,10 @@
+#endif +#endif
} }
/** static int
--- a/net/ipv6/ip6_output.c --- a/net/ipv6/ip6_output.c
+++ b/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; struct in6_addr *nexthop;
int ret; int ret;
@ -1780,7 +1780,7 @@
if (ipv6_addr_is_multicast(&ipv6_hdr(skb)->daddr)) { if (ipv6_addr_is_multicast(&ipv6_hdr(skb)->daddr)) {
struct inet6_dev *idev = ip6_dst_idev(skb_dst(skb)); 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; return 0;
} }
@ -1796,7 +1796,7 @@
ip6_finish_output, ip6_finish_output,
--- a/net/netfilter/core.c --- a/net/netfilter/core.c
+++ b/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); ret = NF_DROP_GETERR(verdict);
if (ret == 0) if (ret == 0)
ret = -EPERM; ret = -EPERM;
@ -1808,10 +1808,10 @@
+ goto next_hook; + goto next_hook;
if (ret == 1 && entry) if (ret == 1 && entry)
goto next_hook; goto next_hook;
} } else {
--- a/net/netfilter/Kconfig --- a/net/netfilter/Kconfig
+++ b/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. To compile it as a module, choose M here. If unsure, say N.
@ -1832,7 +1832,7 @@
depends on NETFILTER_ADVANCED depends on NETFILTER_ADVANCED
--- a/net/netfilter/Makefile --- a/net/netfilter/Makefile
+++ b/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_DSCP) += xt_DSCP.o
obj-$(CONFIG_NETFILTER_XT_TARGET_HL) += xt_HL.o obj-$(CONFIG_NETFILTER_XT_TARGET_HL) += xt_HL.o
obj-$(CONFIG_NETFILTER_XT_TARGET_HMARK) += xt_HMARK.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 /* return EBUSY when somebody else is registered, return EEXIST if the
* same handler is registered, return 0 in case of success. */ * same handler is registered, return 0 in case of success. */
void nf_register_queue_handler(struct net *net, const struct nf_queue_handler *qh) 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, static int __nf_queue(struct sk_buff *skb, const struct nf_hook_state *state,
@ -1897,7 +1897,7 @@
if (!qh) { if (!qh) {
status = -ESRCH; status = -ESRCH;
goto err; 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; int ret;
RCU_INIT_POINTER(state->hook_entries, entry); RCU_INIT_POINTER(state->hook_entries, entry);
@ -1913,7 +1913,7 @@
if (ret == -ESRCH && if (ret == -ESRCH &&
(verdict & NF_VERDICT_FLAG_QUEUE_BYPASS)) { (verdict & NF_VERDICT_FLAG_QUEUE_BYPASS)) {
*entryp = rcu_dereference(entry->next); *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(); local_bh_enable();
break; break;
case NF_QUEUE: case NF_QUEUE:
@ -1998,7 +1998,7 @@
+ +
--- a/net/sched/sch_generic.c --- a/net/sched/sch_generic.c
+++ b/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; return skb;
} }

View File

@ -269,7 +269,7 @@
+#endif /*_IPT_WEBURL_H*/ +#endif /*_IPT_WEBURL_H*/
--- a/net/ipv4/netfilter/Kconfig --- a/net/ipv4/netfilter/Kconfig
+++ b/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 endif # IP_NF_ARPTABLES
@ -297,7 +297,7 @@
--- a/net/ipv4/netfilter/Makefile --- a/net/ipv4/netfilter/Makefile
+++ b/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 obj-$(CONFIG_IP_NF_SECURITY) += iptable_security.o
# matches # matches
@ -3908,7 +3908,6 @@
+module_init(init); +module_init(init);
+module_exit(fini); +module_exit(fini);
+ +
--- /dev/null --- /dev/null
+++ b/net/ipv4/netfilter/ipt_bandwidth.mod.c +++ b/net/ipv4/netfilter/ipt_bandwidth.mod.c
@@ -0,0 +1,20 @@ @@ -0,0 +1,20 @@
@ -4077,7 +4076,6 @@
+module_init(init); +module_init(init);
+module_exit(fini); +module_exit(fini);
+ +
--- /dev/null --- /dev/null
+++ b/net/ipv4/netfilter/ipt_timerange.mod.c +++ b/net/ipv4/netfilter/ipt_timerange.mod.c
@@ -0,0 +1,20 @@ @@ -0,0 +1,20 @@
@ -5423,7 +5421,6 @@
+ +
+module_init(init); +module_init(init);
+module_exit(fini); +module_exit(fini);
--- /dev/null --- /dev/null
+++ b/net/ipv4/netfilter/ipt_weburl.c +++ b/net/ipv4/netfilter/ipt_weburl.c
@@ -0,0 +1,537 @@ @@ -0,0 +1,537 @@
@ -5964,7 +5961,6 @@
+ +
+module_init(init); +module_init(init);
+module_exit(fini); +module_exit(fini);
--- /dev/null --- /dev/null
+++ b/net/ipv4/netfilter/ipt_weburl.mod.c +++ b/net/ipv4/netfilter/ipt_weburl.mod.c
@@ -0,0 +1,20 @@ @@ -0,0 +1,20 @@

View File

@ -9,7 +9,7 @@ Signed-off-by: Felix Fietkau <nbd@nbd.name>
--- a/include/linux/skbuff.h --- a/include/linux/skbuff.h
+++ b/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) * NET_IP_ALIGN(2) + ethernet_header(14) + IP_header(20/40) + ports(8)
*/ */
#ifndef NET_SKB_PAD #ifndef NET_SKB_PAD

View File

@ -22,7 +22,7 @@ Signed-off-by: Felix Fietkau <nbd@nbd.name>
#endif #endif
--- a/include/linux/skbuff.h --- a/include/linux/skbuff.h
+++ b/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 #ifdef CONFIG_NET_SWITCHDEV
__u8 offload_fwd_mark:1; __u8 offload_fwd_mark:1;
#endif #endif
@ -30,11 +30,11 @@ Signed-off-by: Felix Fietkau <nbd@nbd.name>
+ __u8 gro_skip:1; + __u8 gro_skip:1;
+ /* 1, 3 or 4 bit hole */ + /* 1, 3 or 4 bit hole */
#ifdef CONFIG_NET_SCHED #if defined(CONFIG_IMQ) || defined(CONFIG_IMQ_MODULE)
__u16 tc_index; /* traffic control index */ __u8 imq_flags:IMQ_F_BITS;
--- a/net/core/dev.c --- a/net/core/dev.c
+++ b/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; enum gro_result ret;
int grow; int grow;
@ -44,7 +44,7 @@ Signed-off-by: Felix Fietkau <nbd@nbd.name>
if (!(skb->dev->features & NETIF_F_GRO)) if (!(skb->dev->features & NETIF_F_GRO))
goto normal; 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); &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, 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)
@@ -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; goto rollback_lower_mesh;
} }
@ -101,7 +101,7 @@ Signed-off-by: Felix Fietkau <nbd@nbd.name>
ret = call_netdevice_notifiers_info(NETDEV_CHANGEUPPER, dev, ret = call_netdevice_notifiers_info(NETDEV_CHANGEUPPER, dev,
&changeupper_info.info); &changeupper_info.info);
ret = notifier_to_errno(ret); 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) list_for_each_entry(i, &upper_dev->all_adj_list.upper, list)
__netdev_adjacent_dev_unlink(dev, i->dev, i->ref_nr); __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, call_netdevice_notifiers_info(NETDEV_CHANGEUPPER, dev,
&changeupper_info.info); &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) if (err)
return err; return err;
dev->addr_assign_type = NET_ADDR_SET; 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 +obj-$(CONFIG_LEDS_TRIGGER_NETDEV) += ledtrig-netdev.o
--- a/drivers/leds/trigger/Kconfig --- a/drivers/leds/trigger/Kconfig
+++ b/drivers/leds/trigger/Kconfig +++ b/drivers/leds/trigger/Kconfig
@@ -126,4 +126,11 @@ config LEDS_TRIGGER_PANIC @@ -133,4 +133,11 @@ config LEDS_TRIGGER_NETDEV
a different trigger. This allows LEDs to be controlled by network device activity.
If unsure, say Y. If unsure, say Y.
+config LEDS_TRIGGER_NETDEV +config LEDS_TRIGGER_NETDEV