Ingo Molnar wrote: > * Yinghai Lu <yinghai@xxxxxxxxxx> wrote: > >> notice one system /proc/iomem some entries missed the name for pci_devices >> >> it turns that dev->dev.kobj name is changed after device_add. >> >> [Impact: fix corrupted names in /proc/iomem ] >> >> Signed-off-by: Yinghai Lu <yinghai@xxxxxxxxxx> >> >> --- >> lib/kobject.c | 13 +++++++++++-- >> 1 file changed, 11 insertions(+), 2 deletions(-) >> >> Index: linux-2.6/lib/kobject.c >> =================================================================== >> --- linux-2.6.orig/lib/kobject.c >> +++ linux-2.6/lib/kobject.c >> @@ -216,12 +216,21 @@ int kobject_set_name_vargs(struct kobjec >> va_list vargs) >> { >> const char *old_name = kobj->name; >> + char *new_name; >> char *s; >> >> - kobj->name = kvasprintf(GFP_KERNEL, fmt, vargs); >> - if (!kobj->name) >> + new_name = kvasprintf(GFP_KERNEL, fmt, vargs); >> + if (!new_name) >> return -ENOMEM; >> >> + /* different ? */ >> + if (!strcmp(new_name, old_name)) { >> + kfree(new_name); >> + return 0; >> + } >> + >> + kobj->name = new_name; >> + >> /* ewww... some of these buggers have '/' in the name ... */ >> while ((s = strchr(kobj->name, '/'))) >> s[0] = '!'; > > So we used the old name in the resource code, and the kfree() here > corrupted the /proc/iomem output? > if it is not changed, we still use old_name. and new_name get freed YH -- To unsubscribe from this list: send the line "unsubscribe linux-pci" in the body of a message to majordomo@xxxxxxxxxxxxxxx More majordomo info at http://vger.kernel.org/majordomo-info.html