From: Jon M. <jon...@er...> - 2004-04-15 14:04:15
|
Go ahead Thanks /jon Mark Haverkamp wrote: >The net_proto_ops and the net_proto_family structures don't set the >owner field. This prevents proper reference counting for the module and >allows the module to be unloaded when in use. This diff initialized the >owner field and also converts the initialization to the style used by >the kernel code. > >Any objections to checking this in? > >Mark. > >--- /home/markh/views/tipc/cvs/source/unstable/net/tipc/linux-2.6/socket.c 2004-03-30 07:11:39.000000000 -0800 >+++ socket.c 2004-04-13 13:14:06.000000000 -0700 >@@ -1352,69 +1352,73 @@ > } > > static struct proto_ops msg_ops = { >- family:AF_TIPC, >- release:release, >- bind:bind, >- connect:connect, >- socketpair:no_skpair, >- accept:accept, >- getname:get_name, >- poll:poll, >- ioctl:ioctl, >- listen:listen, >- shutdown:shutdown, >- setsockopt:setsockopt, >- getsockopt:getsockopt, >- sendmsg:send_msg, >- recvmsg:recv_msg, >- mmap:no_mmap, >- sendpage:no_sendpage >+ .owner = THIS_MODULE, >+ .family = AF_TIPC, >+ .release = release, >+ .bind = bind, >+ .connect = connect, >+ .socketpair = no_skpair, >+ .accept = accept, >+ .getname = get_name, >+ .poll = poll, >+ .ioctl = ioctl, >+ .listen = listen, >+ .shutdown = shutdown, >+ .setsockopt = setsockopt, >+ .getsockopt = getsockopt, >+ .sendmsg = send_msg, >+ .recvmsg = recv_msg, >+ .mmap = no_mmap, >+ .sendpage = no_sendpage > }; > > static struct proto_ops packet_ops = { >- family:AF_TIPC, >- release:release, >- bind:bind, >- connect:connect, >- socketpair:no_skpair, >- accept:accept, >- getname:get_name, >- poll:poll, >- ioctl:ioctl, >- listen:listen, >- shutdown:shutdown, >- setsockopt:setsockopt, >- getsockopt:getsockopt, >- sendmsg:send_packet, >- recvmsg:recv_msg, >- mmap:no_mmap, >- sendpage:no_sendpage >+ .owner = THIS_MODULE, >+ .family = AF_TIPC, >+ .release = release, >+ .bind = bind, >+ .connect = connect, >+ .socketpair = no_skpair, >+ .accept = accept, >+ .getname = get_name, >+ .poll = poll, >+ .ioctl = ioctl, >+ .listen = listen, >+ .shutdown = shutdown, >+ .setsockopt = setsockopt, >+ .getsockopt = getsockopt, >+ .sendmsg = send_packet, >+ .recvmsg = recv_msg, >+ .mmap = no_mmap, >+ .sendpage = no_sendpage > }; > > static struct proto_ops stream_ops = { >- family:AF_TIPC, >- release:release, >- bind:bind, >- connect:connect, >- socketpair:no_skpair, >- accept:accept, >- getname:get_name, >- poll:poll, >- ioctl:ioctl, >- listen:listen, >- shutdown:shutdown, >- setsockopt:setsockopt, >- getsockopt:getsockopt, >- sendmsg:send_stream, >- recvmsg:recv_stream, >- mmap:no_mmap, >- sendpage:no_sendpage >+ .owner = THIS_MODULE, >+ .family = AF_TIPC, >+ .release = release, >+ .bind = bind, >+ .connect = connect, >+ .socketpair = no_skpair, >+ .accept = accept, >+ .getname = get_name, >+ .poll = poll, >+ .ioctl = ioctl, >+ .listen = listen, >+ .shutdown = shutdown, >+ .setsockopt = setsockopt, >+ .getsockopt = getsockopt, >+ .sendmsg = send_stream, >+ .recvmsg = recv_stream, >+ .mmap = no_mmap, >+ .sendpage = no_sendpage > }; > > > static struct net_proto_family tipc_family_ops = { >- family:AF_TIPC, >- create:tipc_socket >+ .owner = THIS_MODULE, >+ .family = AF_TIPC, >+ .create = tipc_socket > }; > > int > > > |