* 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? This still looks fragile to me ... Ingo -- 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