sock_diag: add module pointer to "struct sock_diag_handler"
authorEric Dumazet <edumazet@google.com>
Mon, 22 Jan 2024 11:25:59 +0000 (11:25 +0000)
committerPaolo Abeni <pabeni@redhat.com>
Tue, 23 Jan 2024 14:13:54 +0000 (15:13 +0100)
Following patch is going to use RCU instead of
sock_diag_table_mutex acquisition.

This patch is a preparation, no change of behavior yet.

Signed-off-by: Eric Dumazet <edumazet@google.com>
Reviewed-by: Guillaume Nault <gnault@redhat.com>
Reviewed-by: Kuniyuki Iwashima <kuniyu@amazon.com>
Reviewed-by: Willem de Bruijn <willemb@google.com>
Signed-off-by: Paolo Abeni <pabeni@redhat.com>
include/linux/sock_diag.h
net/ipv4/inet_diag.c
net/netlink/diag.c
net/packet/diag.c
net/smc/smc_diag.c
net/tipc/diag.c
net/unix/diag.c
net/vmw_vsock/diag.c
net/xdp/xsk_diag.c

index 0b9ecd8..7c07754 100644 (file)
@@ -13,6 +13,7 @@ struct nlmsghdr;
 struct sock;
 
 struct sock_diag_handler {
+       struct module *owner;
        __u8 family;
        int (*dump)(struct sk_buff *skb, struct nlmsghdr *nlh);
        int (*get_info)(struct sk_buff *skb, struct sock *sk);
index abf7dc9..52ce206 100644 (file)
@@ -1488,6 +1488,7 @@ int inet_diag_handler_get_info(struct sk_buff *skb, struct sock *sk)
 }
 
 static const struct sock_diag_handler inet_diag_handler = {
+       .owner = THIS_MODULE,
        .family = AF_INET,
        .dump = inet_diag_handler_cmd,
        .get_info = inet_diag_handler_get_info,
@@ -1495,6 +1496,7 @@ static const struct sock_diag_handler inet_diag_handler = {
 };
 
 static const struct sock_diag_handler inet6_diag_handler = {
+       .owner = THIS_MODULE,
        .family = AF_INET6,
        .dump = inet_diag_handler_cmd,
        .get_info = inet_diag_handler_get_info,
index 1eeff94..e12c90d 100644 (file)
@@ -241,6 +241,7 @@ static int netlink_diag_handler_dump(struct sk_buff *skb, struct nlmsghdr *h)
 }
 
 static const struct sock_diag_handler netlink_diag_handler = {
+       .owner = THIS_MODULE,
        .family = AF_NETLINK,
        .dump = netlink_diag_handler_dump,
 };
index 9a7980e..b3bd2f6 100644 (file)
@@ -245,6 +245,7 @@ static int packet_diag_handler_dump(struct sk_buff *skb, struct nlmsghdr *h)
 }
 
 static const struct sock_diag_handler packet_diag_handler = {
+       .owner = THIS_MODULE,
        .family = AF_PACKET,
        .dump = packet_diag_handler_dump,
 };
index 52f7c4f..32bad26 100644 (file)
@@ -255,6 +255,7 @@ static int smc_diag_handler_dump(struct sk_buff *skb, struct nlmsghdr *h)
 }
 
 static const struct sock_diag_handler smc_diag_handler = {
+       .owner = THIS_MODULE,
        .family = AF_SMC,
        .dump = smc_diag_handler_dump,
 };
index 1873345..54dde8c 100644 (file)
@@ -95,6 +95,7 @@ static int tipc_sock_diag_handler_dump(struct sk_buff *skb,
 }
 
 static const struct sock_diag_handler tipc_sock_diag_handler = {
+       .owner = THIS_MODULE,
        .family = AF_TIPC,
        .dump = tipc_sock_diag_handler_dump,
 };
index bec09a3..c3648b7 100644 (file)
@@ -322,6 +322,7 @@ static int unix_diag_handler_dump(struct sk_buff *skb, struct nlmsghdr *h)
 }
 
 static const struct sock_diag_handler unix_diag_handler = {
+       .owner = THIS_MODULE,
        .family = AF_UNIX,
        .dump = unix_diag_handler_dump,
 };
index 2e29994..ab87ef6 100644 (file)
@@ -157,6 +157,7 @@ static int vsock_diag_handler_dump(struct sk_buff *skb, struct nlmsghdr *h)
 }
 
 static const struct sock_diag_handler vsock_diag_handler = {
+       .owner = THIS_MODULE,
        .family = AF_VSOCK,
        .dump = vsock_diag_handler_dump,
 };
index 9f89553..09dcea0 100644 (file)
@@ -194,6 +194,7 @@ static int xsk_diag_handler_dump(struct sk_buff *nlskb, struct nlmsghdr *hdr)
 }
 
 static const struct sock_diag_handler xsk_diag_handler = {
+       .owner = THIS_MODULE,
        .family = AF_XDP,
        .dump = xsk_diag_handler_dump,
 };