aboutsummaryrefslogtreecommitdiffstats
path: root/driver
diff options
context:
space:
mode:
authorGreg Kroah-Hartman <gregkh@suse.de>2006-03-08 17:06:03 -0800
committerGreg Kroah-Hartman <gregkh@suse.de>2006-03-08 17:06:03 -0800
commitfa6cd02ad70f7398b0df0a099238d468e4108838 (patch)
treea1b2478b44d155115e7414911163ad0a4499e201 /driver
parentcecb1fe37f1d961501123db547d7841bd94a1380 (diff)
downloadpatches-fa6cd02ad70f7398b0df0a099238d468e4108838.tar.gz
add kobject_add() warning patch
Diffstat (limited to 'driver')
-rw-r--r--driver/kobject-add-error-notify.patch56
1 files changed, 56 insertions, 0 deletions
diff --git a/driver/kobject-add-error-notify.patch b/driver/kobject-add-error-notify.patch
new file mode 100644
index 0000000000000..89d6813d1f9f4
--- /dev/null
+++ b/driver/kobject-add-error-notify.patch
@@ -0,0 +1,56 @@
+From: Greg Kroah-Hartman <gregkh@suse.de>
+Subject: Kobject: provide better warning messages when people do stupid things
+
+Now that kobject_add() is used more than kobject_register() the kernel
+wasn't always letting people know that they were doing something wrong.
+This change fixes this.
+
+Signed-off-by: Greg Kroah-Hartman <gregkh@suse.de>
+
+
+---
+ lib/kobject.c | 22 ++++++++++++++--------
+ 1 file changed, 14 insertions(+), 8 deletions(-)
+
+--- gregkh-2.6.orig/lib/kobject.c
++++ gregkh-2.6/lib/kobject.c
+@@ -194,6 +194,17 @@ int kobject_add(struct kobject * kobj)
+ unlink(kobj);
+ if (parent)
+ kobject_put(parent);
++
++ /* be noisy on error issues */
++ if (error == -EEXIST)
++ printk("kobject_add failed for %s with -EEXIST, "
++ "don't try to register things with the "
++ "same name in the same directory.\n",
++ kobject_name(kobj));
++ else
++ printk("kobject_add failed for %s (%d)\n",
++ kobject_name(kobj), error);
++ dump_stack();
+ }
+
+ return error;
+@@ -207,18 +218,13 @@ int kobject_add(struct kobject * kobj)
+
+ int kobject_register(struct kobject * kobj)
+ {
+- int error = 0;
++ int error = -EINVAL;
+ if (kobj) {
+ kobject_init(kobj);
+ error = kobject_add(kobj);
+- if (error) {
+- printk("kobject_register failed for %s (%d)\n",
+- kobject_name(kobj),error);
+- dump_stack();
+- } else
++ if (!error)
+ kobject_uevent(kobj, KOBJ_ADD);
+- } else
+- error = -EINVAL;
++ }
+ return error;
+ }
+