diff options
author | Ingo Molnar <mingo@kernel.org> | 2018-03-27 08:43:39 +0200 |
---|---|---|
committer | Ingo Molnar <mingo@kernel.org> | 2018-03-27 08:43:39 +0200 |
commit | 0bc91d4ba77156ae9217d25ed7c434540f950d05 (patch) | |
tree | 949c1acf27b106184d8842586740fbbcc9c9ea62 /net/core/sock.c | |
parent | 565977a3d929fc4427769117a8ac976ec16776d5 (diff) | |
parent | 3eb2ce825ea1ad89d20f7a3b5780df850e4be274 (diff) | |
download | linux-0bc91d4ba77156ae9217d25ed7c434540f950d05.tar.gz linux-0bc91d4ba77156ae9217d25ed7c434540f950d05.tar.xz |
Merge tag 'v4.16-rc7' into x86/mm, to fix up conflict
Conflicts:
arch/x86/mm/init_64.c
Signed-off-by: Ingo Molnar <mingo@kernel.org>
Diffstat (limited to 'net/core/sock.c')
-rw-r--r-- | net/core/sock.c | 21 |
1 files changed, 21 insertions, 0 deletions
diff --git a/net/core/sock.c b/net/core/sock.c index c501499a04fe..85b0b64e7f9d 100644 --- a/net/core/sock.c +++ b/net/core/sock.c @@ -3261,6 +3261,27 @@ void proto_unregister(struct proto *prot) } EXPORT_SYMBOL(proto_unregister); +int sock_load_diag_module(int family, int protocol) +{ + if (!protocol) { + if (!sock_is_registered(family)) + return -ENOENT; + + return request_module("net-pf-%d-proto-%d-type-%d", PF_NETLINK, + NETLINK_SOCK_DIAG, family); + } + +#ifdef CONFIG_INET + if (family == AF_INET && + !rcu_access_pointer(inet_protos[protocol])) + return -ENOENT; +#endif + + return request_module("net-pf-%d-proto-%d-type-%d-%d", PF_NETLINK, + NETLINK_SOCK_DIAG, family, protocol); +} +EXPORT_SYMBOL(sock_load_diag_module); + #ifdef CONFIG_PROC_FS static void *proto_seq_start(struct seq_file *seq, loff_t *pos) __acquires(proto_list_mutex) |