diff --git a/include/kernel-version.mk b/include/kernel-version.mk index 25662aa09b..26a732d792 100644 --- a/include/kernel-version.mk +++ b/include/kernel-version.mk @@ -9,12 +9,12 @@ endif LINUX_VERSION-4.9 = .219 LINUX_VERSION-4.14 = .176 LINUX_VERSION-4.19 = .115 -LINUX_VERSION-5.4 = .31 +LINUX_VERSION-5.4 = .32 LINUX_KERNEL_HASH-4.9.219 = 6b17238cced3e1c2753d6d5b4f662bd347d4651f07c35506b849eb10aea7bc44 LINUX_KERNEL_HASH-4.14.176 = bcae0956baaeb55dab5bad0401873fbc5baaa7fbe957ea6d27a5ab241cec5ca2 LINUX_KERNEL_HASH-4.19.115 = 11b2d97c8ea5ceb40c5e1d0bb87ad5b2b8c84560181bc60c0d28ec3a3e3801c2 -LINUX_KERNEL_HASH-5.4.31 = a11083f8f809887f6a0f8d4467532385b99418f17998fe6e837807491c276eeb +LINUX_KERNEL_HASH-5.4.32 = 192d99fab7a47a537493b6d7eddb52892b98f8ada655c0bbb419b360a995f2b3 remove_uri_prefix=$(subst git://,,$(subst http://,,$(subst https://,,$(1)))) sanitize_uri=$(call qstrip,$(subst @,_,$(subst :,_,$(subst .,_,$(subst -,_,$(subst /,_,$(1))))))) diff --git a/target/linux/generic/backport-5.4/745-v5.7-net-dsa-mt7530-add-support-for-port-mirroring.patch b/target/linux/generic/backport-5.4/745-v5.7-net-dsa-mt7530-add-support-for-port-mirroring.patch index 4185547264..acd09013af 100644 --- a/target/linux/generic/backport-5.4/745-v5.7-net-dsa-mt7530-add-support-for-port-mirroring.patch +++ b/target/linux/generic/backport-5.4/745-v5.7-net-dsa-mt7530-add-support-for-port-mirroring.patch @@ -82,7 +82,7 @@ Signed-off-by: David S. Miller static enum dsa_tag_protocol mtk_get_tag_protocol(struct dsa_switch *ds, int port) { -@@ -1606,6 +1664,8 @@ static const struct dsa_switch_ops mt753 +@@ -1609,6 +1667,8 @@ static const struct dsa_switch_ops mt753 .port_vlan_prepare = mt7530_port_vlan_prepare, .port_vlan_add = mt7530_port_vlan_add, .port_vlan_del = mt7530_port_vlan_del, diff --git a/target/linux/generic/backport-5.4/746-stable-net-dsa-mt7530-fix-null-pointer-dereferencing-in-por.patch b/target/linux/generic/backport-5.4/746-stable-net-dsa-mt7530-fix-null-pointer-dereferencing-in-por.patch deleted file mode 100644 index 1775bfb32c..0000000000 --- a/target/linux/generic/backport-5.4/746-stable-net-dsa-mt7530-fix-null-pointer-dereferencing-in-por.patch +++ /dev/null @@ -1,39 +0,0 @@ -From 0452800f6db4ed0a42ffb15867c0acfd68829f6a Mon Sep 17 00:00:00 2001 -From: Chuanhong Guo -Date: Fri, 3 Apr 2020 19:28:24 +0800 -Subject: net: dsa: mt7530: fix null pointer dereferencing in port5 setup -MIME-Version: 1.0 -Content-Type: text/plain; charset=UTF-8 -Content-Transfer-Encoding: 8bit - -The 2nd gmac of mediatek soc ethernet may not be connected to a PHY -and a phy-handle isn't always available. -Unfortunately, mt7530 dsa driver assumes that the 2nd gmac is always -connected to switch port 5 and setup mt7530 according to phy address -of 2nd gmac node, causing null pointer dereferencing when phy-handle -isn't defined in dts. -This commit fix this setup code by checking return value of -of_parse_phandle before using it. - -Fixes: 38f790a80560 ("net: dsa: mt7530: Add support for port 5") -Signed-off-by: Chuanhong Guo -Reviewed-by: Vivien Didelot -Reviewed-by: Florian Fainelli -Tested-by: René van Dorst -Signed-off-by: David S. Miller ---- - drivers/net/dsa/mt7530.c | 3 +++ - 1 file changed, 3 insertions(+) - ---- a/drivers/net/dsa/mt7530.c -+++ b/drivers/net/dsa/mt7530.c -@@ -1411,6 +1411,9 @@ mt7530_setup(struct dsa_switch *ds) - continue; - - phy_node = of_parse_phandle(mac_np, "phy-handle", 0); -+ if (!phy_node) -+ continue; -+ - if (phy_node->parent == priv->dev->of_node->parent) { - interface = of_get_phy_mode(mac_np); - id = of_mdio_parse_addr(ds->dev, phy_node); diff --git a/target/linux/generic/hack-5.4/250-netfilter_depends.patch b/target/linux/generic/hack-5.4/250-netfilter_depends.patch index 512e58efcf..20bb0d5929 100644 --- a/target/linux/generic/hack-5.4/250-netfilter_depends.patch +++ b/target/linux/generic/hack-5.4/250-netfilter_depends.patch @@ -17,7 +17,7 @@ Signed-off-by: Felix Fietkau depends on NETFILTER_ADVANCED help H.323 is a VoIP signalling protocol from ITU-T. As one of the most -@@ -1100,7 +1099,6 @@ config NETFILTER_XT_TARGET_SECMARK +@@ -1112,7 +1111,6 @@ config NETFILTER_XT_TARGET_SECMARK config NETFILTER_XT_TARGET_TCPMSS tristate '"TCPMSS" target support' diff --git a/target/linux/generic/hack-5.4/661-use_fq_codel_by_default.patch b/target/linux/generic/hack-5.4/661-use_fq_codel_by_default.patch index e8d456dde8..9106cf6c6c 100644 --- a/target/linux/generic/hack-5.4/661-use_fq_codel_by_default.patch +++ b/target/linux/generic/hack-5.4/661-use_fq_codel_by_default.patch @@ -83,7 +83,7 @@ Signed-off-by: Felix Fietkau EXPORT_SYMBOL(default_qdisc_ops); /* Main transmission queue. */ -@@ -1034,12 +1034,12 @@ static void attach_one_default_qdisc(str +@@ -1042,12 +1042,12 @@ static void attach_one_default_qdisc(str void *_unused) { struct Qdisc *qdisc; diff --git a/target/linux/generic/hack-5.4/662-remove_pfifo_fast.patch b/target/linux/generic/hack-5.4/662-remove_pfifo_fast.patch index 149a923dcb..7a1946cd03 100644 --- a/target/linux/generic/hack-5.4/662-remove_pfifo_fast.patch +++ b/target/linux/generic/hack-5.4/662-remove_pfifo_fast.patch @@ -10,7 +10,7 @@ Signed-off-by: Felix Fietkau --- a/net/sched/sch_generic.c +++ b/net/sched/sch_generic.c -@@ -594,211 +594,6 @@ struct Qdisc_ops noqueue_qdisc_ops __rea +@@ -602,211 +602,6 @@ struct Qdisc_ops noqueue_qdisc_ops __rea .owner = THIS_MODULE, }; diff --git a/target/linux/generic/hack-5.4/721-phy_packets.patch b/target/linux/generic/hack-5.4/721-phy_packets.patch index 07845da1ef..eee267c57f 100644 --- a/target/linux/generic/hack-5.4/721-phy_packets.patch +++ b/target/linux/generic/hack-5.4/721-phy_packets.patch @@ -56,7 +56,7 @@ Signed-off-by: Felix Fietkau */ --- a/include/linux/skbuff.h +++ b/include/linux/skbuff.h -@@ -2667,6 +2667,10 @@ static inline int pskb_trim(struct sk_bu +@@ -2683,6 +2683,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 /** * pskb_trim_unique - remove end from a paged unique (not cloned) buffer * @skb: buffer to alter -@@ -2798,16 +2802,6 @@ static inline struct sk_buff *dev_alloc_ +@@ -2814,16 +2818,6 @@ static inline struct sk_buff *dev_alloc_ } @@ -101,7 +101,7 @@ Signed-off-by: Felix Fietkau help --- a/net/core/dev.c +++ b/net/core/dev.c -@@ -3195,10 +3195,20 @@ static int xmit_one(struct sk_buff *skb, +@@ -3205,10 +3205,20 @@ static int xmit_one(struct sk_buff *skb, if (dev_nit_active(dev)) dev_queue_xmit_nit(skb, dev); @@ -136,7 +136,7 @@ Signed-off-by: Felix Fietkau #include #include -@@ -540,6 +541,22 @@ skb_fail: +@@ -590,6 +591,22 @@ skb_fail: } EXPORT_SYMBOL(__napi_alloc_skb); diff --git a/target/linux/generic/hack-5.4/952-net-conntrack-events-support-multiple-registrant.patch b/target/linux/generic/hack-5.4/952-net-conntrack-events-support-multiple-registrant.patch index b3240a7a9e..c4b6b03262 100644 --- a/target/linux/generic/hack-5.4/952-net-conntrack-events-support-multiple-registrant.patch +++ b/target/linux/generic/hack-5.4/952-net-conntrack-events-support-multiple-registrant.patch @@ -11,16 +11,15 @@ struct nf_ct_event_notifier { int (*fcn)(unsigned int events, struct nf_ct_event *item); }; -@@ -80,7 +84,7 @@ int nf_conntrack_register_notifier(struc +@@ -80,6 +84,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); -- +#endif + void nf_ct_deliver_cached_events(struct nf_conn *ct); int nf_conntrack_eventmask_report(unsigned int eventmask, struct nf_conn *ct, - u32 portid, int report); -@@ -105,12 +109,15 @@ static inline void +@@ -105,11 +110,13 @@ static inline void nf_conntrack_event_cache(enum ip_conntrack_events event, struct nf_conn *ct) { #ifdef CONFIG_NF_CONNTRACK_EVENTS @@ -31,50 +30,36 @@ if (!rcu_access_pointer(net->ct.nf_conntrack_event_cb)) return; - +#endif -+ + e = nf_ct_ecache_find(ct); if (e == NULL) - return; -@@ -123,31 +130,28 @@ static inline int - nf_conntrack_event_report(enum ip_conntrack_events event, struct nf_conn *ct, +@@ -124,10 +131,12 @@ nf_conntrack_event_report(enum ip_conntr u32 portid, int report) { --#ifdef CONFIG_NF_CONNTRACK_EVENTS + #ifdef CONFIG_NF_CONNTRACK_EVENTS +#ifndef CONFIG_NF_CONNTRACK_CHAIN_EVENTS const struct net *net = nf_ct_net(ct); if (!rcu_access_pointer(net->ct.nf_conntrack_event_cb)) return 0; -- -- return nf_conntrack_eventmask_report(1 << event, ct, portid, report); --#else -- return 0; - #endif -+ -+ return nf_conntrack_eventmask_report(1 << event, ct, portid, report); - } ++#endif - static inline int + return nf_conntrack_eventmask_report(1 << event, ct, portid, report); + #else +@@ -139,10 +148,12 @@ static inline int nf_conntrack_event(enum ip_conntrack_events event, struct nf_conn *ct) { --#ifdef CONFIG_NF_CONNTRACK_EVENTS + #ifdef CONFIG_NF_CONNTRACK_EVENTS +#ifndef CONFIG_NF_CONNTRACK_CHAIN_EVENTS const struct net *net = nf_ct_net(ct); if (!rcu_access_pointer(net->ct.nf_conntrack_event_cb)) return 0; ++#endif -- return nf_conntrack_eventmask_report(1 << event, ct, 0, 0); --#else -- return 0; - #endif -+ -+ return nf_conntrack_eventmask_report(1 << event, ct, 0, 0); - } - - #ifdef CONFIG_NF_CONNTRACK_EVENTS + return nf_conntrack_eventmask_report(1 << event, ct, 0, 0); + #else --- a/include/net/netns/conntrack.h +++ b/include/net/netns/conntrack.h @@ -112,7 +112,11 @@ struct netns_ct { @@ -130,16 +115,13 @@ #include #include #include -@@ -117,6 +120,38 @@ static void ecache_work(struct work_stru +@@ -116,7 +119,35 @@ static void ecache_work(struct work_stru + if (delay >= 0) schedule_delayed_work(&ctnet->ecache_dwork, delay); } - +#ifdef CONFIG_NF_CONNTRACK_CHAIN_EVENTS -+int -+nf_conntrack_eventmask_report(unsigned int eventmask, -+ struct nf_conn *ct, -+ u32 portid, -+ int report) ++int nf_conntrack_eventmask_report(unsigned int eventmask, struct nf_conn *ct, ++ u32 portid, int report) +{ + struct nf_conntrack_ecache *e; + struct net *net = nf_ct_net(ct); @@ -159,7 +141,7 @@ + + if (!((eventmask | missed) & e->ctmask)) + return 0; -+ + + atomic_notifier_call_chain(&net->ct.nf_conntrack_chain, eventmask | missed, &item); + } + @@ -169,7 +151,7 @@ int nf_conntrack_eventmask_report(unsigned int eventmask, struct nf_conn *ct, u32 portid, int report) { -@@ -171,10 +206,52 @@ out_unlock: +@@ -171,10 +202,52 @@ out_unlock: rcu_read_unlock(); return ret; } @@ -222,7 +204,7 @@ 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 +@@ -225,6 +298,7 @@ void nf_ct_deliver_cached_events(struct out_unlock: rcu_read_unlock(); } @@ -230,12 +212,13 @@ EXPORT_SYMBOL_GPL(nf_ct_deliver_cached_events); void nf_ct_expect_event_report(enum ip_conntrack_expect_events event, -@@ -257,6 +335,12 @@ out_unlock: +@@ -257,6 +331,13 @@ out_unlock: rcu_read_unlock(); } +#ifdef CONFIG_NF_CONNTRACK_CHAIN_EVENTS -+int nf_conntrack_register_notifier(struct net *net, struct notifier_block *nb) ++int nf_conntrack_register_notifier(struct net *net, ++ struct notifier_block *nb) +{ + return atomic_notifier_chain_register(&net->ct.nf_conntrack_chain, nb); +} @@ -243,7 +226,7 @@ int nf_conntrack_register_notifier(struct net *net, struct nf_ct_event_notifier *new) { -@@ -277,8 +361,15 @@ out_unlock: +@@ -277,8 +358,15 @@ out_unlock: mutex_unlock(&nf_ct_ecache_mutex); return ret; } @@ -259,7 +242,7 @@ void nf_conntrack_unregister_notifier(struct net *net, struct nf_ct_event_notifier *new) { -@@ -292,6 +383,7 @@ void nf_conntrack_unregister_notifier(st +@@ -292,6 +380,7 @@ void nf_conntrack_unregister_notifier(st mutex_unlock(&nf_ct_ecache_mutex); /* synchronize_rcu() is called from ctnetlink_exit. */ } @@ -269,27 +252,13 @@ int nf_ct_expect_register_notifier(struct net *net, --- a/net/netfilter/nf_conntrack_netlink.c +++ b/net/netfilter/nf_conntrack_netlink.c -@@ -28,6 +28,11 @@ - #include - #include - #include -+ -+#ifdef CONFIG_NF_CONNTRACK_CHAIN_EVENTS -+#include -+#endif -+ - #include - #include - -@@ -676,14 +681,22 @@ static size_t ctnetlink_nlmsg_size(const - ; +@@ -677,13 +677,20 @@ static size_t ctnetlink_nlmsg_size(const } -+#ifdef CONFIG_NF_CONNTRACK_CHAIN_EVENTS -+static int ctnetlink_conntrack_event(struct notifier_block *this, -+ unsigned long events, void *ptr) -+#else static int ++#ifdef CONFIG_NF_CONNTRACK_CHAIN_EVENTS ++ctnetlink_conntrack_event(struct notifier_block *this, unsigned long events, void *ptr) ++#else ctnetlink_conntrack_event(unsigned int events, struct nf_ct_event *item) +#endif { @@ -304,7 +273,7 @@ struct nf_conn *ct = item->ct; struct sk_buff *skb; unsigned int type; -@@ -3502,9 +3515,15 @@ static int ctnetlink_stat_exp_cpu(struct +@@ -3502,9 +3509,15 @@ static int ctnetlink_stat_exp_cpu(struct } #ifdef CONFIG_NF_CONNTRACK_EVENTS diff --git a/target/linux/generic/hack-5.4/999-thermal-tristate.patch b/target/linux/generic/hack-5.4/999-thermal-tristate.patch index 1d40613b90..8a207c8eae 100644 --- a/target/linux/generic/hack-5.4/999-thermal-tristate.patch +++ b/target/linux/generic/hack-5.4/999-thermal-tristate.patch @@ -2,7 +2,7 @@ +++ b/drivers/thermal/Kconfig @@ -4,7 +4,7 @@ # - + menuconfig THERMAL - bool "Generic Thermal sysfs driver" + tristate "Generic Thermal sysfs driver" diff --git a/target/linux/generic/pending-5.4/601-add-kernel-imq-support.patch b/target/linux/generic/pending-5.4/601-add-kernel-imq-support.patch index 87da85b983..8ee5a81a49 100644 --- a/target/linux/generic/pending-5.4/601-add-kernel-imq-support.patch +++ b/target/linux/generic/pending-5.4/601-add-kernel-imq-support.patch @@ -1,7 +1,6 @@ -diff -Naupr linux-5.4.10_orig/drivers/net/Kconfig linux-5.4.10/drivers/net/Kconfig ---- linux-5.4.10_orig/drivers/net/Kconfig 2020-01-09 11:25:53.000000000 +0200 -+++ linux-5.4.10/drivers/net/Kconfig 2020-01-10 15:16:47.222143243 +0200 -@@ -282,6 +282,125 @@ config RIONET_RX_SIZE +--- a/drivers/net/Kconfig ++++ b/drivers/net/Kconfig +@@ -283,6 +283,125 @@ config RIONET_RX_SIZE depends on RIONET default "128" @@ -127,9 +126,8 @@ diff -Naupr linux-5.4.10_orig/drivers/net/Kconfig linux-5.4.10/drivers/net/Kconf config TUN tristate "Universal TUN/TAP device driver support" depends on INET -diff -Naupr linux-5.4.10_orig/drivers/net/Makefile linux-5.4.10/drivers/net/Makefile ---- linux-5.4.10_orig/drivers/net/Makefile 2020-01-09 11:25:53.000000000 +0200 -+++ linux-5.4.10/drivers/net/Makefile 2020-01-10 15:16:47.222143243 +0200 +--- a/drivers/net/Makefile ++++ b/drivers/net/Makefile @@ -13,6 +13,7 @@ obj-$(CONFIG_DUMMY) += dummy.o obj-$(CONFIG_EQUALIZER) += eql.o obj-$(CONFIG_IFB) += ifb.o @@ -138,9 +136,8 @@ diff -Naupr linux-5.4.10_orig/drivers/net/Makefile linux-5.4.10/drivers/net/Make obj-$(CONFIG_MACVLAN) += macvlan.o obj-$(CONFIG_MACVTAP) += macvtap.o obj-$(CONFIG_MII) += mii.o -diff -Naupr linux-5.4.10_orig/drivers/net/imq.c linux-5.4.10/drivers/net/imq.c ---- linux-5.4.10_orig/drivers/net/imq.c 1970-01-01 02:00:00.000000000 +0200 -+++ linux-5.4.10/drivers/net/imq.c 2020-01-10 15:21:17.815149199 +0200 +--- /dev/null ++++ b/drivers/net/imq.c @@ -0,0 +1,963 @@ +/* + * Pseudo-driver for the intermediate queue device. @@ -1105,9 +1102,8 @@ diff -Naupr linux-5.4.10_orig/drivers/net/imq.c linux-5.4.10/drivers/net/imq.c +MODULE_DESCRIPTION("Pseudo-driver for the intermediate queue device. See https://github.com/imq/linuximq/wiki for more information."); +MODULE_LICENSE("GPL"); +MODULE_ALIAS_RTNL_LINK("imq"); -diff -Naupr linux-5.4.10_orig/include/linux/imq.h linux-5.4.10/include/linux/imq.h ---- linux-5.4.10_orig/include/linux/imq.h 1970-01-01 02:00:00.000000000 +0200 -+++ linux-5.4.10/include/linux/imq.h 2020-01-10 15:16:47.222143243 +0200 +--- /dev/null ++++ b/include/linux/imq.h @@ -0,0 +1,13 @@ +#ifndef _IMQ_H +#define _IMQ_H @@ -1122,10 +1118,9 @@ diff -Naupr linux-5.4.10_orig/include/linux/imq.h linux-5.4.10/include/linux/imq + +#endif /* _IMQ_H */ + -diff -Naupr linux-5.4.10_orig/include/linux/netdevice.h linux-5.4.10/include/linux/netdevice.h ---- linux-5.4.10_orig/include/linux/netdevice.h 2020-01-09 11:25:53.000000000 +0200 -+++ linux-5.4.10/include/linux/netdevice.h 2020-01-10 15:16:47.223143243 +0200 -@@ -1936,6 +1936,11 @@ struct net_device { +--- a/include/linux/netdevice.h ++++ b/include/linux/netdevice.h +@@ -1938,6 +1938,11 @@ struct net_device { /* * Cache lines mostly used on receive path (including eth_type_trans()) */ @@ -1137,7 +1132,7 @@ diff -Naupr linux-5.4.10_orig/include/linux/netdevice.h linux-5.4.10/include/lin /* Interface address info used in eth_type_trans() */ unsigned char *dev_addr; -@@ -4033,6 +4038,19 @@ static inline void netif_tx_unlock_bh(st +@@ -4037,6 +4042,19 @@ static inline void netif_tx_unlock_bh(st } \ } @@ -1157,9 +1152,8 @@ diff -Naupr linux-5.4.10_orig/include/linux/netdevice.h linux-5.4.10/include/lin static inline void netif_tx_disable(struct net_device *dev) { unsigned int i; -diff -Naupr linux-5.4.10_orig/include/linux/netfilter/xt_IMQ.h linux-5.4.10/include/linux/netfilter/xt_IMQ.h ---- linux-5.4.10_orig/include/linux/netfilter/xt_IMQ.h 1970-01-01 02:00:00.000000000 +0200 -+++ linux-5.4.10/include/linux/netfilter/xt_IMQ.h 2020-01-10 15:16:47.224143243 +0200 +--- /dev/null ++++ b/include/linux/netfilter/xt_IMQ.h @@ -0,0 +1,9 @@ +#ifndef _XT_IMQ_H +#define _XT_IMQ_H @@ -1170,9 +1164,8 @@ diff -Naupr linux-5.4.10_orig/include/linux/netfilter/xt_IMQ.h linux-5.4.10/incl + +#endif /* _XT_IMQ_H */ + -diff -Naupr linux-5.4.10_orig/include/linux/netfilter_ipv4/ipt_IMQ.h linux-5.4.10/include/linux/netfilter_ipv4/ipt_IMQ.h ---- linux-5.4.10_orig/include/linux/netfilter_ipv4/ipt_IMQ.h 1970-01-01 02:00:00.000000000 +0200 -+++ linux-5.4.10/include/linux/netfilter_ipv4/ipt_IMQ.h 2020-01-10 15:16:47.224143243 +0200 +--- /dev/null ++++ b/include/linux/netfilter_ipv4/ipt_IMQ.h @@ -0,0 +1,10 @@ +#ifndef _IPT_IMQ_H +#define _IPT_IMQ_H @@ -1184,9 +1177,8 @@ diff -Naupr linux-5.4.10_orig/include/linux/netfilter_ipv4/ipt_IMQ.h linux-5.4.1 + +#endif /* _IPT_IMQ_H */ + -diff -Naupr linux-5.4.10_orig/include/linux/netfilter_ipv6/ip6t_IMQ.h linux-5.4.10/include/linux/netfilter_ipv6/ip6t_IMQ.h ---- linux-5.4.10_orig/include/linux/netfilter_ipv6/ip6t_IMQ.h 1970-01-01 02:00:00.000000000 +0200 -+++ linux-5.4.10/include/linux/netfilter_ipv6/ip6t_IMQ.h 2020-01-10 15:16:47.224143243 +0200 +--- /dev/null ++++ b/include/linux/netfilter_ipv6/ip6t_IMQ.h @@ -0,0 +1,10 @@ +#ifndef _IP6T_IMQ_H +#define _IP6T_IMQ_H @@ -1198,9 +1190,8 @@ diff -Naupr linux-5.4.10_orig/include/linux/netfilter_ipv6/ip6t_IMQ.h linux-5.4. + +#endif /* _IP6T_IMQ_H */ + -diff -Naupr linux-5.4.10_orig/include/linux/skbuff.h linux-5.4.10/include/linux/skbuff.h ---- linux-5.4.10_orig/include/linux/skbuff.h 2020-01-09 11:25:53.000000000 +0200 -+++ linux-5.4.10/include/linux/skbuff.h 2020-01-10 15:16:47.225143243 +0200 +--- a/include/linux/skbuff.h ++++ b/include/linux/skbuff.h @@ -40,6 +40,9 @@ #if IS_ENABLED(CONFIG_NF_CONNTRACK) #include @@ -1241,7 +1232,7 @@ diff -Naupr linux-5.4.10_orig/include/linux/skbuff.h linux-5.4.10/include/linux/ #ifdef CONFIG_NET_CLS_ACT __u8 tc_skip_classify:1; __u8 tc_at_ingress:1; -@@ -1023,6 +1035,10 @@ void skb_tx_error(struct sk_buff *skb); +@@ -1025,6 +1037,10 @@ void skb_tx_error(struct sk_buff *skb); void consume_skb(struct sk_buff *skb); void __consume_stateless_skb(struct sk_buff *skb); void __kfree_skb(struct sk_buff *skb); @@ -1252,7 +1243,7 @@ diff -Naupr linux-5.4.10_orig/include/linux/skbuff.h linux-5.4.10/include/linux/ extern struct kmem_cache *skbuff_head_cache; void kfree_skb_partial(struct sk_buff *skb, bool head_stolen); -@@ -4216,6 +4232,10 @@ static inline void __nf_copy(struct sk_b +@@ -4218,6 +4234,10 @@ static inline void __nf_copy(struct sk_b dst->_nfct = src->_nfct; nf_conntrack_get(skb_nfct(src)); #endif @@ -1263,9 +1254,8 @@ diff -Naupr linux-5.4.10_orig/include/linux/skbuff.h linux-5.4.10/include/linux/ #if IS_ENABLED(CONFIG_NETFILTER_XT_TARGET_TRACE) || defined(CONFIG_NF_TABLES) if (copy) dst->nf_trace = src->nf_trace; -diff -Naupr linux-5.4.10_orig/include/net/netfilter/nf_queue.h linux-5.4.10/include/net/netfilter/nf_queue.h ---- linux-5.4.10_orig/include/net/netfilter/nf_queue.h 2020-01-09 11:25:53.000000000 +0200 -+++ linux-5.4.10/include/net/netfilter/nf_queue.h 2020-01-10 15:16:47.225143243 +0200 +--- a/include/net/netfilter/nf_queue.h ++++ b/include/net/netfilter/nf_queue.h @@ -33,6 +33,12 @@ struct nf_queue_handler { void nf_register_queue_handler(struct net *net, const struct nf_queue_handler *qh); void nf_unregister_queue_handler(struct net *net); @@ -1279,9 +1269,8 @@ diff -Naupr linux-5.4.10_orig/include/net/netfilter/nf_queue.h linux-5.4.10/incl void nf_queue_entry_get_refs(struct nf_queue_entry *entry); void nf_queue_entry_release_refs(struct nf_queue_entry *entry); -diff -Naupr linux-5.4.10_orig/include/net/pkt_sched.h linux-5.4.10/include/net/pkt_sched.h ---- linux-5.4.10_orig/include/net/pkt_sched.h 2020-01-09 11:25:53.000000000 +0200 -+++ linux-5.4.10/include/net/pkt_sched.h 2020-01-10 15:16:47.225143243 +0200 +--- a/include/net/pkt_sched.h ++++ b/include/net/pkt_sched.h @@ -115,6 +115,8 @@ bool sch_direct_xmit(struct sk_buff *skb void __qdisc_run(struct Qdisc *q); @@ -1291,10 +1280,9 @@ diff -Naupr linux-5.4.10_orig/include/net/pkt_sched.h linux-5.4.10/include/net/p static inline void qdisc_run(struct Qdisc *q) { if (qdisc_run_begin(q)) { -diff -Naupr linux-5.4.10_orig/include/net/sch_generic.h linux-5.4.10/include/net/sch_generic.h ---- linux-5.4.10_orig/include/net/sch_generic.h 2020-01-09 11:25:53.000000000 +0200 -+++ linux-5.4.10/include/net/sch_generic.h 2020-01-10 15:16:47.226143243 +0200 -@@ -810,6 +810,13 @@ static inline int qdisc_enqueue(struct s +--- a/include/net/sch_generic.h ++++ b/include/net/sch_generic.h +@@ -795,6 +795,13 @@ static inline int qdisc_enqueue(struct s return sch->enqueue(skb, sch, to_free); } @@ -1308,9 +1296,8 @@ diff -Naupr linux-5.4.10_orig/include/net/sch_generic.h linux-5.4.10/include/net static inline void _bstats_update(struct gnet_stats_basic_packed *bstats, __u64 bytes, __u32 packets) { -diff -Naupr linux-5.4.10_orig/include/uapi/linux/netfilter.h linux-5.4.10/include/uapi/linux/netfilter.h ---- linux-5.4.10_orig/include/uapi/linux/netfilter.h 2020-01-09 11:25:53.000000000 +0200 -+++ linux-5.4.10/include/uapi/linux/netfilter.h 2020-01-10 15:16:47.226143243 +0200 +--- a/include/uapi/linux/netfilter.h ++++ b/include/uapi/linux/netfilter.h @@ -14,7 +14,8 @@ #define NF_QUEUE 3 #define NF_REPEAT 4 @@ -1321,9 +1308,8 @@ diff -Naupr linux-5.4.10_orig/include/uapi/linux/netfilter.h linux-5.4.10/includ /* we overload the higher bits for encoding auxiliary data such as the queue * number or errno values. Not nice, but better than additional function -diff -Naupr linux-5.4.10_orig/net/core/dev.c linux-5.4.10/net/core/dev.c ---- linux-5.4.10_orig/net/core/dev.c 2020-01-09 11:25:53.000000000 +0200 -+++ linux-5.4.10/net/core/dev.c 2020-01-10 15:16:47.227143243 +0200 +--- a/net/core/dev.c ++++ b/net/core/dev.c @@ -137,6 +137,9 @@ #include #include @@ -1334,7 +1320,7 @@ diff -Naupr linux-5.4.10_orig/net/core/dev.c linux-5.4.10/net/core/dev.c #include #include #include -@@ -3191,6 +3194,13 @@ static int xmit_one(struct sk_buff *skb, +@@ -3192,6 +3195,13 @@ static int xmit_one(struct sk_buff *skb, unsigned int len; int rc; @@ -1348,7 +1334,7 @@ diff -Naupr linux-5.4.10_orig/net/core/dev.c linux-5.4.10/net/core/dev.c if (dev_nit_active(dev)) dev_queue_xmit_nit(skb, dev); -@@ -3230,6 +3240,8 @@ out: +@@ -3231,6 +3241,8 @@ out: return skb; } @@ -1357,9 +1343,8 @@ diff -Naupr linux-5.4.10_orig/net/core/dev.c linux-5.4.10/net/core/dev.c static struct sk_buff *validate_xmit_vlan(struct sk_buff *skb, netdev_features_t features) { -diff -Naupr linux-5.4.10_orig/net/core/skbuff.c linux-5.4.10/net/core/skbuff.c ---- linux-5.4.10_orig/net/core/skbuff.c 2020-01-09 11:25:53.000000000 +0200 -+++ linux-5.4.10/net/core/skbuff.c 2020-01-10 15:27:54.348157926 +0200 +--- a/net/core/skbuff.c ++++ b/net/core/skbuff.c @@ -86,6 +86,56 @@ static struct kmem_cache *skbuff_ext_cac int sysctl_max_skb_frags __read_mostly = MAX_SKB_FRAGS; EXPORT_SYMBOL(sysctl_max_skb_frags); @@ -1470,10 +1455,9 @@ diff -Naupr linux-5.4.10_orig/net/core/skbuff.c linux-5.4.10/net/core/skbuff.c skb_extensions_init(); } -diff -Naupr linux-5.4.10_orig/net/netfilter/Kconfig linux-5.4.10/net/netfilter/Kconfig ---- linux-5.4.10_orig/net/netfilter/Kconfig 2020-01-09 11:25:53.000000000 +0200 -+++ linux-5.4.10/net/netfilter/Kconfig 2020-01-10 15:16:47.229143243 +0200 -@@ -929,6 +929,18 @@ config NETFILTER_XT_TARGET_LOG +--- a/net/netfilter/Kconfig ++++ b/net/netfilter/Kconfig +@@ -941,6 +941,18 @@ config NETFILTER_XT_TARGET_LOG To compile it as a module, choose M here. If unsure, say N. @@ -1492,10 +1476,9 @@ diff -Naupr linux-5.4.10_orig/net/netfilter/Kconfig linux-5.4.10/net/netfilter/K config NETFILTER_XT_TARGET_MARK tristate '"MARK" target support' depends on NETFILTER_ADVANCED -diff -Naupr linux-5.4.10_orig/net/netfilter/Makefile linux-5.4.10/net/netfilter/Makefile ---- linux-5.4.10_orig/net/netfilter/Makefile 2020-01-09 11:25:53.000000000 +0200 -+++ linux-5.4.10/net/netfilter/Makefile 2020-01-10 15:16:47.229143243 +0200 -@@ -142,6 +142,7 @@ obj-$(CONFIG_NETFILTER_XT_TARGET_CT) += +--- a/net/netfilter/Makefile ++++ b/net/netfilter/Makefile +@@ -145,6 +145,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 @@ -1503,9 +1486,8 @@ diff -Naupr linux-5.4.10_orig/net/netfilter/Makefile linux-5.4.10/net/netfilter/ obj-$(CONFIG_NETFILTER_XT_TARGET_LED) += xt_LED.o obj-$(CONFIG_NETFILTER_XT_TARGET_LOG) += xt_LOG.o obj-$(CONFIG_NETFILTER_XT_TARGET_NETMAP) += xt_NETMAP.o -diff -Naupr linux-5.4.10_orig/net/netfilter/core.c linux-5.4.10/net/netfilter/core.c ---- linux-5.4.10_orig/net/netfilter/core.c 2020-01-09 11:25:53.000000000 +0200 -+++ linux-5.4.10/net/netfilter/core.c 2020-01-10 15:16:47.229143243 +0200 +--- a/net/netfilter/core.c ++++ b/net/netfilter/core.c @@ -519,6 +519,11 @@ int nf_hook_slow(struct sk_buff *skb, st if (ret == 0) ret = -EPERM; @@ -1518,9 +1500,8 @@ diff -Naupr linux-5.4.10_orig/net/netfilter/core.c linux-5.4.10/net/netfilter/co case NF_QUEUE: ret = nf_queue(skb, state, s, verdict); if (ret == 1) -diff -Naupr linux-5.4.10_orig/net/netfilter/nf_queue.c linux-5.4.10/net/netfilter/nf_queue.c ---- linux-5.4.10_orig/net/netfilter/nf_queue.c 2020-01-09 11:25:53.000000000 +0200 -+++ linux-5.4.10/net/netfilter/nf_queue.c 2020-01-10 15:16:47.229143243 +0200 +--- a/net/netfilter/nf_queue.c ++++ b/net/netfilter/nf_queue.c @@ -29,6 +29,23 @@ * receives, no matter what. */ @@ -1602,9 +1583,8 @@ diff -Naupr linux-5.4.10_orig/net/netfilter/nf_queue.c linux-5.4.10/net/netfilte err = nf_queue(skb, &entry->state, i, verdict); if (err == 1) goto next_hook; -diff -Naupr linux-5.4.10_orig/net/netfilter/xt_IMQ.c linux-5.4.10/net/netfilter/xt_IMQ.c ---- linux-5.4.10_orig/net/netfilter/xt_IMQ.c 1970-01-01 02:00:00.000000000 +0200 -+++ linux-5.4.10/net/netfilter/xt_IMQ.c 2020-01-10 15:16:47.229143243 +0200 +--- /dev/null ++++ b/net/netfilter/xt_IMQ.c @@ -0,0 +1,72 @@ +/* + * This target marks packets to be enqueued to an imq device @@ -1678,9 +1658,8 @@ diff -Naupr linux-5.4.10_orig/net/netfilter/xt_IMQ.c linux-5.4.10/net/netfilter/ +MODULE_ALIAS("ipt_IMQ"); +MODULE_ALIAS("ip6t_IMQ"); + -diff -Naupr linux-5.4.10_orig/net/sched/sch_generic.c linux-5.4.10/net/sched/sch_generic.c ---- linux-5.4.10_orig/net/sched/sch_generic.c 2020-01-09 11:25:53.000000000 +0200 -+++ linux-5.4.10/net/sched/sch_generic.c 2020-01-10 15:16:47.230143243 +0200 +--- a/net/sched/sch_generic.c ++++ b/net/sched/sch_generic.c @@ -273,6 +273,14 @@ trace: return skb; } diff --git a/target/linux/generic/pending-5.4/655-increase_skb_pad.patch b/target/linux/generic/pending-5.4/655-increase_skb_pad.patch index d8ca330ac2..0d8ae822f5 100644 --- a/target/linux/generic/pending-5.4/655-increase_skb_pad.patch +++ b/target/linux/generic/pending-5.4/655-increase_skb_pad.patch @@ -9,7 +9,7 @@ Signed-off-by: Felix Fietkau --- a/include/linux/skbuff.h +++ b/include/linux/skbuff.h -@@ -2633,7 +2633,7 @@ static inline int pskb_network_may_pull( +@@ -2649,7 +2649,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 diff --git a/target/linux/generic/pending-5.4/680-NET-skip-GRO-for-foreign-MAC-addresses.patch b/target/linux/generic/pending-5.4/680-NET-skip-GRO-for-foreign-MAC-addresses.patch index d34ba6a569..9fa34f0c6e 100644 --- a/target/linux/generic/pending-5.4/680-NET-skip-GRO-for-foreign-MAC-addresses.patch +++ b/target/linux/generic/pending-5.4/680-NET-skip-GRO-for-foreign-MAC-addresses.patch @@ -22,7 +22,7 @@ Signed-off-by: Felix Fietkau #endif --- a/include/linux/skbuff.h +++ b/include/linux/skbuff.h -@@ -824,6 +824,7 @@ struct sk_buff { +@@ -836,6 +836,7 @@ struct sk_buff { #ifdef CONFIG_TLS_DEVICE __u8 decrypted:1; #endif @@ -32,7 +32,7 @@ Signed-off-by: Felix Fietkau __u16 tc_index; /* traffic control index */ --- a/net/core/dev.c +++ b/net/core/dev.c -@@ -5460,6 +5460,9 @@ static enum gro_result dev_gro_receive(s +@@ -5472,6 +5472,9 @@ static enum gro_result dev_gro_receive(s int same_flow; int grow; @@ -42,7 +42,7 @@ Signed-off-by: Felix Fietkau if (netif_elide_gro(skb->dev)) goto normal; -@@ -7253,6 +7256,48 @@ static void __netdev_adjacent_dev_unlink +@@ -7265,6 +7268,48 @@ static void __netdev_adjacent_dev_unlink &upper_dev->adj_list.lower); } @@ -91,7 +91,7 @@ Signed-off-by: Felix Fietkau static int __netdev_upper_dev_link(struct net_device *dev, struct net_device *upper_dev, bool master, void *upper_priv, void *upper_info, -@@ -7303,6 +7348,7 @@ static int __netdev_upper_dev_link(struc +@@ -7315,6 +7360,7 @@ static int __netdev_upper_dev_link(struc if (ret) return ret; @@ -99,7 +99,7 @@ Signed-off-by: Felix Fietkau ret = call_netdevice_notifiers_info(NETDEV_CHANGEUPPER, &changeupper_info.info); ret = notifier_to_errno(ret); -@@ -7396,6 +7442,7 @@ void netdev_upper_dev_unlink(struct net_ +@@ -7408,6 +7454,7 @@ void netdev_upper_dev_unlink(struct net_ __netdev_adjacent_dev_unlink_neighbour(dev, upper_dev); @@ -107,7 +107,7 @@ Signed-off-by: Felix Fietkau call_netdevice_notifiers_info(NETDEV_CHANGEUPPER, &changeupper_info.info); -@@ -8126,6 +8173,7 @@ int dev_set_mac_address(struct net_devic +@@ -8138,6 +8185,7 @@ int dev_set_mac_address(struct net_devic if (err) return err; dev->addr_assign_type = NET_ADDR_SET;