aboutsummaryrefslogtreecommitdiffstats
path: root/lib
diff options
context:
space:
mode:
authorGreg Kroah-Hartman <greg@kroah.com>2004-10-22 01:43:17 -0700
committerGreg Kroah-Hartman <greg@kroah.com>2004-10-22 01:43:17 -0700
commit48a7c3ab870172255c83c121f6dab1928105efdf (patch)
treee10de4f05f84cd79d6b0c3aba261f899287f65ff /lib
parent1c1355b29e9bfb042ff146c5e6a8d75c420ea596 (diff)
downloadhistory-48a7c3ab870172255c83c121f6dab1928105efdf.tar.gz
hotplug: prevent skips in sequence number from happening
Signed-off-by: Greg Kroah-Hartman <greg@kroah.com>
Diffstat (limited to 'lib')
-rw-r--r--lib/kobject_uevent.c17
1 files changed, 9 insertions, 8 deletions
diff --git a/lib/kobject_uevent.c b/lib/kobject_uevent.c
index f46936798faba2..41380e9c5d32b2 100644
--- a/lib/kobject_uevent.c
+++ b/lib/kobject_uevent.c
@@ -255,13 +255,6 @@ void kobject_hotplug(struct kobject *kobj, enum kobject_action action)
envp [i++] = scratch;
scratch += sprintf (scratch, "DEVPATH=%s", kobj_path) + 1;
- spin_lock(&sequence_lock);
- seq = ++hotplug_seqnum;
- spin_unlock(&sequence_lock);
-
- envp [i++] = scratch;
- scratch += sprintf(scratch, "SEQNUM=%lld", (long long)seq) + 1;
-
envp [i++] = scratch;
scratch += sprintf(scratch, "SUBSYSTEM=%s", name) + 1;
@@ -277,7 +270,15 @@ void kobject_hotplug(struct kobject *kobj, enum kobject_action action)
}
}
- pr_debug ("%s: %s %s %s %s %s %s %s\n", __FUNCTION__, argv[0], argv[1],
+ spin_lock(&sequence_lock);
+ seq = ++hotplug_seqnum;
+ spin_unlock(&sequence_lock);
+
+ envp [i++] = scratch;
+ scratch += sprintf(scratch, "SEQNUM=%lld", (long long)seq) + 1;
+
+ pr_debug ("%s: %s %s seq=%lld %s %s %s %s %s\n",
+ __FUNCTION__, argv[0], argv[1], (long long)seq,
envp[0], envp[1], envp[2], envp[3], envp[4]);
send_uevent(action_string, kobj_path, buffer, scratch - buffer, GFP_KERNEL);