aboutsummaryrefslogtreecommitdiffstats
path: root/include/linux
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 /include/linux
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 'include/linux')
-rw-r--r--include/linux/net.h3
-rw-r--r--include/linux/netlink.h2
2 files changed, 4 insertions, 1 deletions
diff --git a/include/linux/net.h b/include/linux/net.h
index 20cb226b2268..39906619b9d7 100644
--- a/include/linux/net.h
+++ b/include/linux/net.h
@@ -282,5 +282,8 @@ static struct proto_ops name##_ops = { \
282#define MODULE_ALIAS_NETPROTO(proto) \ 282#define MODULE_ALIAS_NETPROTO(proto) \
283 MODULE_ALIAS("net-pf-" __stringify(proto)) 283 MODULE_ALIAS("net-pf-" __stringify(proto))
284 284
285#define MODULE_ALIAS_NET_PF_PROTO(pf, proto) \
286 MODULE_ALIAS("net-pf-" __stringify(pf) "-proto-" __stringify(proto))
287
285#endif /* __KERNEL__ */ 288#endif /* __KERNEL__ */
286#endif /* _LINUX_NET_H */ 289#endif /* _LINUX_NET_H */
diff --git a/include/linux/netlink.h b/include/linux/netlink.h
index 6552b71bfa73..1c50fea8995b 100644
--- a/include/linux/netlink.h
+++ b/include/linux/netlink.h
@@ -117,7 +117,7 @@ struct netlink_skb_parms
117#define NETLINK_CREDS(skb) (&NETLINK_CB((skb)).creds) 117#define NETLINK_CREDS(skb) (&NETLINK_CB((skb)).creds)
118 118
119 119
120extern struct sock *netlink_kernel_create(int unit, void (*input)(struct sock *sk, int len)); 120extern struct sock *netlink_kernel_create(int unit, void (*input)(struct sock *sk, int len), struct module *module);
121extern void netlink_ack(struct sk_buff *in_skb, struct nlmsghdr *nlh, int err); 121extern void netlink_ack(struct sk_buff *in_skb, struct nlmsghdr *nlh, int err);
122extern int netlink_unicast(struct sock *ssk, struct sk_buff *skb, __u32 pid, int nonblock); 122extern int netlink_unicast(struct sock *ssk, struct sk_buff *skb, __u32 pid, int nonblock);
123extern int netlink_broadcast(struct sock *ssk, struct sk_buff *skb, __u32 pid, 123extern int netlink_broadcast(struct sock *ssk, struct sk_buff *skb, __u32 pid,