--- zzzz-none-000/linux-2.6.32.61/lib/kobject_uevent.c 2013-06-10 09:43:48.000000000 +0000 +++ ar10-7272-687/linux-2.6.32.61/lib/kobject_uevent.c 2013-02-12 11:32:07.000000000 +0000 @@ -29,7 +29,8 @@ char uevent_helper[UEVENT_HELPER_PATH_LEN] = CONFIG_UEVENT_HELPER_PATH; static DEFINE_SPINLOCK(sequence_lock); #if defined(CONFIG_NET) -static struct sock *uevent_sock; +struct sock *uevent_sock = NULL; +EXPORT_SYMBOL_GPL(uevent_sock); #endif /* the strings here must match the enum in include/linux/kobject.h */ @@ -42,6 +43,18 @@ [KOBJ_OFFLINE] = "offline", }; +u64 uevent_next_seqnum(void) +{ + u64 seq; + + spin_lock(&sequence_lock); + seq = ++uevent_seqnum; + spin_unlock(&sequence_lock); + + return seq; +} +EXPORT_SYMBOL_GPL(uevent_next_seqnum); + /** * kobject_action_type - translate action string to numeric type * @@ -201,9 +214,7 @@ kobj->state_remove_uevent_sent = 1; /* we will send an event, so request a new sequence number */ - spin_lock(&sequence_lock); - seq = ++uevent_seqnum; - spin_unlock(&sequence_lock); + seq = uevent_next_seqnum(); retval = add_uevent_var(env, "SEQNUM=%llu", (unsigned long long)seq); if (retval) goto exit;