kernel: bump 5.4 to 5.4.32

Remove upstreamed:
* 746-stable-net-dsa-mt7530-fix-null-pointer-dereferencing-in-por.patch

Refreshed all generic patches.

Signed-off-by: CN_SZTL <cnsztl@project-openwrt.eu.org>
This commit is contained in:
CN_SZTL 2020-04-15 01:19:50 +08:00
parent 88ecff8632
commit 20ee2055dc
No known key found for this signature in database
GPG Key ID: 6850B6345C862176
12 changed files with 101 additions and 192 deletions

View File

@ -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)))))))

View File

@ -82,7 +82,7 @@ Signed-off-by: David S. Miller <davem@davemloft.net>
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,

View File

@ -1,39 +0,0 @@
From 0452800f6db4ed0a42ffb15867c0acfd68829f6a Mon Sep 17 00:00:00 2001
From: Chuanhong Guo <gch981213@gmail.com>
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 <gch981213@gmail.com>
Reviewed-by: Vivien Didelot <vivien.didelot@gmail.com>
Reviewed-by: Florian Fainelli <f.fainelli@gmail.com>
Tested-by: René van Dorst <opensource@vdorst.com>
Signed-off-by: David S. Miller <davem@davemloft.net>
---
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);

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
@@ -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'

View File

@ -83,7 +83,7 @@ Signed-off-by: Felix Fietkau <nbd@nbd.name>
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;

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
@@ -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,
};

View File

@ -56,7 +56,7 @@ Signed-off-by: Felix Fietkau <nbd@nbd.name>
*/
--- 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 <nbd@nbd.name>
/**
* 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 <nbd@nbd.name>
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 <nbd@nbd.name>
#include <net/protocol.h>
#include <net/dst.h>
@@ -540,6 +541,22 @@ skb_fail:
@@ -590,6 +591,22 @@ skb_fail:
}
EXPORT_SYMBOL(__napi_alloc_skb);

View File

@ -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 <linux/kernel.h>
#include <linux/netdevice.h>
#include <linux/slab.h>
@@ -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 <linux/netlink.h>
#include <linux/spinlock.h>
#include <linux/interrupt.h>
+
+#ifdef CONFIG_NF_CONNTRACK_CHAIN_EVENTS
+#include <linux/notifier.h>
+#endif
+
#include <linux/slab.h>
#include <linux/siphash.h>
@@ -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

View File

@ -2,7 +2,7 @@
+++ b/drivers/thermal/Kconfig
@@ -4,7 +4,7 @@
#
menuconfig THERMAL
- bool "Generic Thermal sysfs driver"
+ tristate "Generic Thermal sysfs driver"

View File

@ -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 <linux/netfilter/nf_conntrack_common.h>
@ -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 <linux/hrtimer.h>
#include <linux/netfilter_ingress.h>
@ -1334,7 +1320,7 @@ diff -Naupr linux-5.4.10_orig/net/core/dev.c linux-5.4.10/net/core/dev.c
#include <linux/sctp.h>
#include <net/udp_tunnel.h>
#include <linux/net_namespace.h>
@@ -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;
}

View File

@ -9,7 +9,7 @@ Signed-off-by: Felix Fietkau <nbd@nbd.name>
--- 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

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
@@ -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 <nbd@nbd.name>
__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 <nbd@nbd.name>
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 <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,
@@ -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 <nbd@nbd.name>
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 <nbd@nbd.name>
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;