Thread (8 messages) flat view 8 messages, 4 authors, 2012-09-25

Re: [PATCH] inet_diag: make config INET_DIAG bool

From: Gao feng <hidden>
Date: 2012-09-24 10:17:57

于 2012年09月24日 17:42, Eric Dumazet 写道:
In fact I didnt fully understand the problem you try to address.

If you want to prevent module being unloaded, you need to add proper
module_get()/module_put()

So I would add a "struct module *module;" in struct sock_diag_handler
and use it appropriately.
Yes, I try to add reference of the module,but I can't find a proper
location to call module_get and module_put.

module_get should be called when userspace program use netlink to
send dump request to the kernel,and module_put should be called when
the dump is completed. I am right?

BUT the userspace program may only call netlink_sendmsg without call
netlink_recvmsg.so the reference of the module will be incorrect.
But then, I might have totally misunderstood the problem.

Care to explain how you trigger the bug ?
It's very easy to trigger this bug,
you can exec "while :; do ss -a ; done" in one terminal
and exec "while :; do rmmod tcp_diag && rmmod inet_diag; done"
in another terminal.
Keyboard shortcuts
hback out one level
jnext message in thread
kprevious message in thread
ldrill in
Escclose help / fold thread tree
?toggle this help