diff options
author | Greg Kroah-Hartman <gregkh@suse.de> | 2006-03-08 17:06:03 -0800 |
---|---|---|
committer | Greg Kroah-Hartman <gregkh@suse.de> | 2006-03-08 17:06:03 -0800 |
commit | fa6cd02ad70f7398b0df0a099238d468e4108838 (patch) | |
tree | a1b2478b44d155115e7414911163ad0a4499e201 /driver | |
parent | cecb1fe37f1d961501123db547d7841bd94a1380 (diff) | |
download | patches-fa6cd02ad70f7398b0df0a099238d468e4108838.tar.gz |
add kobject_add() warning patch
Diffstat (limited to 'driver')
-rw-r--r-- | driver/kobject-add-error-notify.patch | 56 |
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; + } + |