This postcore_initcall() created pernet_operations are registered from ./lib directory, and they have to go right after audit_net_ops.
uevent_net_init() and uevent_net_exit() create and destroy netlink socket, and these actions serialized in netlink code. Parallel execution with other pernet_operations makes the socket disappear earlier from uevent_sock_list on ->exit. As userspace can't be interested in broadcast messages of dying net, and, as I see, no one in kernel listen them, we may safely move uevent_net_ops to pernet_sys list. Signed-off-by: Kirill Tkhai <ktk...@virtuozzo.com> --- lib/kobject_uevent.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/lib/kobject_uevent.c b/lib/kobject_uevent.c index c3e84edc47c9..84c9d85477cc 100644 --- a/lib/kobject_uevent.c +++ b/lib/kobject_uevent.c @@ -647,7 +647,7 @@ static struct pernet_operations uevent_net_ops = { static int __init kobject_uevent_init(void) { - return register_pernet_subsys(&uevent_net_ops); + return register_pernet_sys(&uevent_net_ops); }