1
0
Fork 0

kobject: clean up debugging messages

The kobject debugging messages are a mess.  This provides a unified
message that makes them actually useful.

The format for new kobject debug messages should be:
	kobject: 'KOBJECT_NAME' (ADDRESS): FUNCTION_NAME: message.\n

Cc: Kay Sievers <kay.sievers@vrfy.org>
Signed-off-by: Greg Kroah-Hartman <gregkh@suse.de>
hifive-unleashed-5.1
Greg Kroah-Hartman 2007-11-28 23:49:41 -08:00
parent cfb36fff45
commit 9f66fa2a46
2 changed files with 29 additions and 14 deletions

View File

@ -95,7 +95,8 @@ static void fill_kobj_path(struct kobject *kobj, char *path, int length)
*(path + --length) = '/'; *(path + --length) = '/';
} }
pr_debug("%s: path = '%s'\n",__FUNCTION__,path); pr_debug("kobject: '%s' (%p): %s: path = '%s'\n", kobject_name(kobj),
kobj, __FUNCTION__,path);
} }
/** /**
@ -171,15 +172,17 @@ int kobject_add(struct kobject * kobj)
if (!kobj->k_name) if (!kobj->k_name)
kobject_set_name(kobj, "NO_NAME"); kobject_set_name(kobj, "NO_NAME");
if (!*kobj->k_name) { if (!*kobj->k_name) {
pr_debug("kobject attempted to be registered with no name!\n"); pr_debug("kobject (%p) attempted to be registered with no "
"name!\n", kobj);
WARN_ON(1); WARN_ON(1);
kobject_put(kobj); kobject_put(kobj);
return -EINVAL; return -EINVAL;
} }
parent = kobject_get(kobj->parent); parent = kobject_get(kobj->parent);
pr_debug("kobject %s: registering. parent: %s, set: %s\n", pr_debug("kobject: '%s' (%p): %s: parent: '%s', set: '%s'\n",
kobject_name(kobj), parent ? kobject_name(parent) : "<NULL>", kobject_name(kobj), kobj, __FUNCTION__,
parent ? kobject_name(parent) : "<NULL>",
kobj->kset ? kobject_name(&kobj->kset->kobj) : "<NULL>" ); kobj->kset ? kobject_name(&kobj->kset->kobj) : "<NULL>" );
if (kobj->kset) { if (kobj->kset) {
@ -560,7 +563,8 @@ void kobject_unregister(struct kobject * kobj)
{ {
if (!kobj) if (!kobj)
return; return;
pr_debug("kobject %s: unregistering\n",kobject_name(kobj)); pr_debug("kobject: '%s' (%p): %s\n",
kobject_name(kobj), kobj, __FUNCTION__);
kobject_uevent(kobj, KOBJ_REMOVE); kobject_uevent(kobj, KOBJ_REMOVE);
kobject_del(kobj); kobject_del(kobj);
kobject_put(kobj); kobject_put(kobj);
@ -589,7 +593,8 @@ static void kobject_cleanup(struct kobject *kobj)
struct kobject * parent = kobj->parent; struct kobject * parent = kobj->parent;
const char *name = kobj->k_name; const char *name = kobj->k_name;
pr_debug("kobject %s: cleaning up\n",kobject_name(kobj)); pr_debug("kobject: '%s' (%p): %s\n",
kobject_name(kobj), kobj, __FUNCTION__);
if (t && t->release) { if (t && t->release) {
t->release(kobj); t->release(kobj);
/* If we have a release function, we can guess that this was /* If we have a release function, we can guess that this was
@ -621,7 +626,8 @@ void kobject_put(struct kobject * kobj)
static void dynamic_kobj_release(struct kobject *kobj) static void dynamic_kobj_release(struct kobject *kobj)
{ {
pr_debug("%s: freeing %s\n", __FUNCTION__, kobject_name(kobj)); pr_debug("kobject: '%s' (%p): %s\n",
kobject_name(kobj), kobj, __FUNCTION__);
kfree(kobj); kfree(kobj);
} }
@ -803,7 +809,8 @@ struct kobject * kset_find_obj(struct kset * kset, const char * name)
static void kset_release(struct kobject *kobj) static void kset_release(struct kobject *kobj)
{ {
struct kset *kset = container_of(kobj, struct kset, kobj); struct kset *kset = container_of(kobj, struct kset, kobj);
pr_debug("kset %s: now freed\n", kobject_name(kobj)); pr_debug("kobject: '%s' (%p): %s\n",
kobject_name(kobj), kobj, __FUNCTION__);
kfree(kset); kfree(kset);
} }

View File

@ -98,7 +98,8 @@ int kobject_uevent_env(struct kobject *kobj, enum kobject_action action,
int i = 0; int i = 0;
int retval = 0; int retval = 0;
pr_debug("%s\n", __FUNCTION__); pr_debug("kobject: '%s' (%p): %s\n",
kobject_name(kobj), kobj, __FUNCTION__);
/* search the kset we belong to */ /* search the kset we belong to */
top_kobj = kobj; top_kobj = kobj;
@ -106,7 +107,9 @@ int kobject_uevent_env(struct kobject *kobj, enum kobject_action action,
top_kobj = top_kobj->parent; top_kobj = top_kobj->parent;
if (!top_kobj->kset) { if (!top_kobj->kset) {
pr_debug("kobject attempted to send uevent without kset!\n"); pr_debug("kobject: '%s' (%p): %s: attempted to send uevent "
"without kset!\n", kobject_name(kobj), kobj,
__FUNCTION__);
return -EINVAL; return -EINVAL;
} }
@ -116,7 +119,9 @@ int kobject_uevent_env(struct kobject *kobj, enum kobject_action action,
/* skip the event, if the filter returns zero. */ /* skip the event, if the filter returns zero. */
if (uevent_ops && uevent_ops->filter) if (uevent_ops && uevent_ops->filter)
if (!uevent_ops->filter(kset, kobj)) { if (!uevent_ops->filter(kset, kobj)) {
pr_debug("kobject filter function caused the event to drop!\n"); pr_debug("kobject: '%s' (%p): %s: filter function "
"caused the event to drop!\n",
kobject_name(kobj), kobj, __FUNCTION__);
return 0; return 0;
} }
@ -126,7 +131,9 @@ int kobject_uevent_env(struct kobject *kobj, enum kobject_action action,
else else
subsystem = kobject_name(&kset->kobj); subsystem = kobject_name(&kset->kobj);
if (!subsystem) { if (!subsystem) {
pr_debug("unset subsystem caused the event to drop!\n"); pr_debug("kobject: '%s' (%p): %s: unset subsystem caused the "
"event to drop!\n", kobject_name(kobj), kobj,
__FUNCTION__);
return 0; return 0;
} }
@ -166,8 +173,9 @@ int kobject_uevent_env(struct kobject *kobj, enum kobject_action action,
if (uevent_ops && uevent_ops->uevent) { if (uevent_ops && uevent_ops->uevent) {
retval = uevent_ops->uevent(kset, kobj, env); retval = uevent_ops->uevent(kset, kobj, env);
if (retval) { if (retval) {
pr_debug ("%s - uevent() returned %d\n", pr_debug("kobject: '%s' (%p): %s: uevent() returned "
__FUNCTION__, retval); "%d\n", kobject_name(kobj), kobj,
__FUNCTION__, retval);
goto exit; goto exit;
} }
} }