rename target/linux/generic-2.6 to generic
[openwrt.git] / target / linux / generic / patches-2.6.32 / 219-kobject_uevent.patch
diff --git a/target/linux/generic/patches-2.6.32/219-kobject_uevent.patch b/target/linux/generic/patches-2.6.32/219-kobject_uevent.patch
new file mode 100644 (file)
index 0000000..7e00b22
--- /dev/null
@@ -0,0 +1,42 @@
+--- a/lib/kobject_uevent.c
++++ b/lib/kobject_uevent.c
+@@ -29,7 +29,8 @@ u64 uevent_seqnum;
+ 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 @@ static const char *kobject_actions[] = {
+       [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 @@ int kobject_uevent_env(struct kobject *k
+               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;
This page took 0.024135 seconds and 4 git commands to generate.