kernel: add support for kernel 5.4
[openwrt/openwrt.git] / target / linux / generic / hack-5.4 / 901-debloat_sock_diag.patch
index 639f76d3091f04c559a1901f47f17e158efec413..aec1d58fa7a6d175dc236e22518997f8a0c53ef6 100644 (file)
@@ -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