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 make uevent_net_ops async. Signed-off-by: Kirill Tkhai <ktk...@virtuozzo.com> --- lib/kobject_uevent.c | 1 + 1 file changed, 1 insertion(+) diff --git a/lib/kobject_uevent.c b/lib/kobject_uevent.c index c3e84edc47c9..4a2c39ae1e65 100644 --- a/lib/kobject_uevent.c +++ b/lib/kobject_uevent.c @@ -643,6 +643,7 @@ static void uevent_net_exit(struct net *net) static struct pernet_operations uevent_net_ops = { .init = uevent_net_init, .exit = uevent_net_exit, + .async = true, }; static int __init kobject_uevent_init(void)