aboutsummaryrefslogtreecommitdiffstats
path: root/target/linux/generic/hack-5.4/901-debloat_sock_diag.patch
diff options
context:
space:
mode:
Diffstat (limited to 'target/linux/generic/hack-5.4/901-debloat_sock_diag.patch')
-rw-r--r--target/linux/generic/hack-5.4/901-debloat_sock_diag.patch37
1 files changed, 23 insertions, 14 deletions
diff --git a/target/linux/generic/hack-5.4/901-debloat_sock_diag.patch b/target/linux/generic/hack-5.4/901-debloat_sock_diag.patch
index 639f76d309..aec1d58fa7 100644
--- a/target/linux/generic/hack-5.4/901-debloat_sock_diag.patch
+++ b/target/linux/generic/hack-5.4/901-debloat_sock_diag.patch
@@ -16,7 +16,7 @@ Signed-off-by: Felix Fietkau <nbd@nbd.name>
--- a/net/Kconfig
+++ b/net/Kconfig
-@@ -98,6 +98,9 @@ source "net/netlabel/Kconfig"
+@@ -100,6 +100,9 @@ source "net/netlabel/Kconfig"
endif # if INET
@@ -34,7 +34,7 @@ Signed-off-by: Felix Fietkau <nbd@nbd.name>
neighbour.o rtnetlink.o utils.o link_watch.o filter.o \
- sock_diag.o dev_ioctl.o tso.o sock_reuseport.o \
+ dev_ioctl.o tso.o sock_reuseport.o \
- fib_notifier.o xdp.o
+ fib_notifier.o xdp.o flow_offload.o
+obj-$(CONFIG_SOCK_DIAG) += sock_diag.o
obj-y += net-sysfs.o
@@ -42,7 +42,15 @@ Signed-off-by: Felix Fietkau <nbd@nbd.name>
obj-$(CONFIG_PROC_FS) += net-procfs.o
--- a/net/core/sock.c
+++ b/net/core/sock.c
-@@ -490,6 +490,18 @@ discard_and_relse:
+@@ -140,6 +140,7 @@
+
+ static DEFINE_MUTEX(proto_list_mutex);
+ static LIST_HEAD(proto_list);
++static atomic64_t cookie_gen;
+
+ static void sock_inuse_add(struct net *net, int val);
+
+@@ -539,6 +540,18 @@ discard_and_relse:
}
EXPORT_SYMBOL(__sk_receive_skb);
@@ -53,7 +61,7 @@ Signed-off-by: Felix Fietkau <nbd@nbd.name>
+
+ if (res)
+ return res;
-+ res = atomic64_inc_return(&sock_net(sk)->cookie_gen);
++ res = atomic64_inc_return(&cookie_gen);
+ atomic64_cmpxchg(&sk->sk_cookie, 0, res);
+ }
+}
@@ -61,7 +69,7 @@ Signed-off-by: Felix Fietkau <nbd@nbd.name>
struct dst_entry *__sk_dst_check(struct sock *sk, u32 cookie)
{
struct dst_entry *dst = __sk_dst_get(sk);
-@@ -1603,9 +1615,11 @@ static void __sk_free(struct sock *sk)
+@@ -1746,9 +1759,11 @@ static void __sk_free(struct sock *sk)
if (likely(sk->sk_net_refcnt))
sock_inuse_add(sock_net(sk), -1);
@@ -75,10 +83,12 @@ Signed-off-by: Felix Fietkau <nbd@nbd.name>
--- a/net/core/sock_diag.c
+++ b/net/core/sock_diag.c
-@@ -20,18 +20,6 @@ static int (*inet_rcv_compat)(struct sk_
+@@ -19,19 +19,6 @@ static const struct sock_diag_handler *s
+ static int (*inet_rcv_compat)(struct sk_buff *skb, struct nlmsghdr *nlh);
static DEFINE_MUTEX(sock_diag_table_mutex);
static struct workqueue_struct *broadcast_wq;
-
+-static atomic64_t cookie_gen;
+-
-u64 sock_gen_cookie(struct sock *sk)
-{
- while (1) {
@@ -86,17 +96,16 @@ Signed-off-by: Felix Fietkau <nbd@nbd.name>
-
- if (res)
- return res;
-- res = atomic64_inc_return(&sock_net(sk)->cookie_gen);
+- res = atomic64_inc_return(&cookie_gen);
- atomic64_cmpxchg(&sk->sk_cookie, 0, res);
- }
-}
--
+
int sock_diag_check_cookie(struct sock *sk, const __u32 *cookie)
{
- u64 res;
--- a/net/ipv4/Kconfig
+++ b/net/ipv4/Kconfig
-@@ -425,6 +425,7 @@ config INET_XFRM_MODE_BEET
+@@ -399,6 +399,7 @@ config INET_TUNNEL
config INET_DIAG
tristate "INET: socket monitoring interface"
@@ -106,7 +115,7 @@ Signed-off-by: Felix Fietkau <nbd@nbd.name>
Support for INET (TCP, DCCP, etc) socket monitoring interface used by
--- a/net/netlink/Kconfig
+++ b/net/netlink/Kconfig
-@@ -4,6 +4,7 @@
+@@ -5,6 +5,7 @@
config NETLINK_DIAG
tristate "NETLINK: socket monitoring interface"
@@ -116,7 +125,7 @@ Signed-off-by: Felix Fietkau <nbd@nbd.name>
Support for NETLINK socket monitoring interface used by the ss tool.
--- a/net/packet/Kconfig
+++ b/net/packet/Kconfig
-@@ -18,6 +18,7 @@ config PACKET
+@@ -19,6 +19,7 @@ config PACKET
config PACKET_DIAG
tristate "Packet: sockets monitoring interface"
depends on PACKET
@@ -126,7 +135,7 @@ Signed-off-by: Felix Fietkau <nbd@nbd.name>
Support for PF_PACKET sockets monitoring interface used by the ss tool.
--- a/net/unix/Kconfig
+++ b/net/unix/Kconfig
-@@ -22,6 +22,7 @@ config UNIX
+@@ -28,6 +28,7 @@ config UNIX_SCM
config UNIX_DIAG
tristate "UNIX: socket monitoring interface"
depends on UNIX