diff options
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.patch | 37 |
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 |