aboutsummaryrefslogtreecommitdiffstats
path: root/net/ipv4
diff options
context:
space:
mode:
authorHarald Welte <laforge@netfilter.org>2005-08-09 22:40:55 -0400
committerDavid S. Miller <davem@sunset.davemloft.net>2005-08-29 18:35:08 -0400
commit4fdb3bb723db469717c6d38fda667d8b0fa86ebd (patch)
tree43d82e717922e6319cf8a8f9dc5ee902c651b491 /net/ipv4
parent020b4c12dbe3868d792a01d7c1470cd837abe10f (diff)
[NETLINK]: Add properly module refcounting for kernel netlink sockets.
- Remove bogus code for compiling netlink as module - Add module refcounting support for modules implementing a netlink protocol - Add support for autoloading modules that implement a netlink protocol as soon as someone opens a socket for that protocol Signed-off-by: Harald Welte <laforge@netfilter.org> Signed-off-by: David S. Miller <davem@davemloft.net>
Diffstat (limited to 'net/ipv4')
-rw-r--r--net/ipv4/fib_frontend.c2
-rw-r--r--net/ipv4/netfilter/ip_queue.c3
-rw-r--r--net/ipv4/netfilter/ipt_ULOG.c3
-rw-r--r--net/ipv4/tcp_diag.c3
4 files changed, 7 insertions, 4 deletions
diff --git a/net/ipv4/fib_frontend.c b/net/ipv4/fib_frontend.c
index e5722084239b..b5e2f1550c91 100644
--- a/net/ipv4/fib_frontend.c
+++ b/net/ipv4/fib_frontend.c
@@ -567,7 +567,7 @@ static void nl_fib_input(struct sock *sk, int len)
567 567
568static void nl_fib_lookup_init(void) 568static void nl_fib_lookup_init(void)
569{ 569{
570 netlink_kernel_create(NETLINK_FIB_LOOKUP, nl_fib_input); 570 netlink_kernel_create(NETLINK_FIB_LOOKUP, nl_fib_input, THIS_MODULE);
571} 571}
572 572
573static void fib_disable_ip(struct net_device *dev, int force) 573static void fib_disable_ip(struct net_device *dev, int force)
diff --git a/net/ipv4/netfilter/ip_queue.c b/net/ipv4/netfilter/ip_queue.c
index ae975ac59c6a..b237f7fcad92 100644
--- a/net/ipv4/netfilter/ip_queue.c
+++ b/net/ipv4/netfilter/ip_queue.c
@@ -692,7 +692,8 @@ init_or_cleanup(int init)
692 goto cleanup; 692 goto cleanup;
693 693
694 netlink_register_notifier(&ipq_nl_notifier); 694 netlink_register_notifier(&ipq_nl_notifier);
695 ipqnl = netlink_kernel_create(NETLINK_FIREWALL, ipq_rcv_sk); 695 ipqnl = netlink_kernel_create(NETLINK_FIREWALL, ipq_rcv_sk,
696 THIS_MODULE);
696 if (ipqnl == NULL) { 697 if (ipqnl == NULL) {
697 printk(KERN_ERR "ip_queue: failed to create netlink socket\n"); 698 printk(KERN_ERR "ip_queue: failed to create netlink socket\n");
698 goto cleanup_netlink_notifier; 699 goto cleanup_netlink_notifier;
diff --git a/net/ipv4/netfilter/ipt_ULOG.c b/net/ipv4/netfilter/ipt_ULOG.c
index 52a0076302a7..4ea8371ab270 100644
--- a/net/ipv4/netfilter/ipt_ULOG.c
+++ b/net/ipv4/netfilter/ipt_ULOG.c
@@ -62,6 +62,7 @@
62MODULE_LICENSE("GPL"); 62MODULE_LICENSE("GPL");
63MODULE_AUTHOR("Harald Welte <laforge@gnumonks.org>"); 63MODULE_AUTHOR("Harald Welte <laforge@gnumonks.org>");
64MODULE_DESCRIPTION("iptables userspace logging module"); 64MODULE_DESCRIPTION("iptables userspace logging module");
65MODULE_ALIAS_NET_PF_PROTO(PF_NETLINK, NETLINK_NFLOG);
65 66
66#define ULOG_NL_EVENT 111 /* Harald's favorite number */ 67#define ULOG_NL_EVENT 111 /* Harald's favorite number */
67#define ULOG_MAXNLGROUPS 32 /* numer of nlgroups */ 68#define ULOG_MAXNLGROUPS 32 /* numer of nlgroups */
@@ -372,7 +373,7 @@ static int __init init(void)
372 ulog_buffers[i].timer.data = i; 373 ulog_buffers[i].timer.data = i;
373 } 374 }
374 375
375 nflognl = netlink_kernel_create(NETLINK_NFLOG, NULL); 376 nflognl = netlink_kernel_create(NETLINK_NFLOG, NULL, THIS_MODULE);
376 if (!nflognl) 377 if (!nflognl)
377 return -ENOMEM; 378 return -ENOMEM;
378 379
diff --git a/net/ipv4/tcp_diag.c b/net/ipv4/tcp_diag.c
index f66945cb158f..f79bd11a4701 100644
--- a/net/ipv4/tcp_diag.c
+++ b/net/ipv4/tcp_diag.c
@@ -774,7 +774,8 @@ static void tcpdiag_rcv(struct sock *sk, int len)
774 774
775static int __init tcpdiag_init(void) 775static int __init tcpdiag_init(void)
776{ 776{
777 tcpnl = netlink_kernel_create(NETLINK_TCPDIAG, tcpdiag_rcv); 777 tcpnl = netlink_kernel_create(NETLINK_TCPDIAG, tcpdiag_rcv,
778 THIS_MODULE);
778 if (tcpnl == NULL) 779 if (tcpnl == NULL)
779 return -ENOMEM; 780 return -ENOMEM;
780 return 0; 781 return 0;