diff --git a/lib/kobject_uevent.c b/lib/kobject_uevent.c index e66e9b6..596c40d 100644 --- a/lib/kobject_uevent.c +++ b/lib/kobject_uevent.c @@ -243,6 +243,9 @@ int kobject_uevent_env(struct kobject *kobj, enum kobject_action action, else if (action == KOBJ_REMOVE) kobj->state_remove_uevent_sent = 1; +#if defined(CONFIG_NET) + mutex_lock(&uevent_sock_mutex); +#endif /* we will send an event, so request a new sequence number */ spin_lock(&sequence_lock); seq = ++uevent_seqnum; @@ -253,7 +256,6 @@ int kobject_uevent_env(struct kobject *kobj, enum kobject_action action, #if defined(CONFIG_NET) /* send netlink message */ - mutex_lock(&uevent_sock_mutex); list_for_each_entry(ue_sk, &uevent_sock_list, list) { struct sock *uevent_sock = ue_sk->sk; struct sk_buff *skb;