diff options
author | 2006-08-09 21:03:17 -0700 | |
---|---|---|
committer | 2006-09-22 14:54:20 -0700 | |
commit | f0fd27d42e39b91f85e1840ec49b072fd6c545b8 (patch) | |
tree | aa4d1cbe1671507e4d0ec6787076db92a0ee5926 /net/socket.c | |
parent | [NET]: socket family using RCU (diff) | |
download | linux-f0fd27d42e39b91f85e1840ec49b072fd6c545b8.tar.gz linux-f0fd27d42e39b91f85e1840ec49b072fd6c545b8.tar.bz2 linux-f0fd27d42e39b91f85e1840ec49b072fd6c545b8.zip |
[NET]: sock_register interface changes
The sock_register() doesn't change the family, so the protocols can
define it read-only. No caller ever checks return value from
sock_unregister()
Signed-off-by: Stephen Hemminger <shemminger@osdl.org>
Signed-off-by: David S. Miller <davem@davemloft.net>
Diffstat (limited to 'net/socket.c')
-rw-r--r-- | net/socket.c | 10 |
1 files changed, 4 insertions, 6 deletions
diff --git a/net/socket.c b/net/socket.c index b5a3fcb9ed6d..4147fe4bf41d 100644 --- a/net/socket.c +++ b/net/socket.c @@ -147,7 +147,7 @@ static struct file_operations socket_file_ops = { */ static DEFINE_SPINLOCK(net_family_lock); -static const struct net_proto_family *net_families[NPROTO]; +static const struct net_proto_family *net_families[NPROTO] __read_mostly; /* * Statistics counters of the socket lists @@ -2080,7 +2080,7 @@ asmlinkage long sys_socketcall(int call, unsigned long __user *args) * socket interface. The value ops->family coresponds to the * socket system call protocol family. */ -int sock_register(struct net_proto_family *ops) +int sock_register(const struct net_proto_family *ops) { int err; @@ -2116,10 +2116,9 @@ int sock_register(struct net_proto_family *ops) * a module then it needs to provide its own protection in * the ops->create routine. */ -int sock_unregister(int family) +void sock_unregister(int family) { - if (family < 0 || family >= NPROTO) - return -EINVAL; + BUG_ON(family < 0 || family >= NPROTO); spin_lock(&net_family_lock); net_families[family] = NULL; @@ -2128,7 +2127,6 @@ int sock_unregister(int family) synchronize_rcu(); printk(KERN_INFO "NET: Unregistered protocol family %d\n", family); - return 0; } static int __init sock_init(void) |