kobjects: fix up improper use of the kobject name field
Greg Kroah-Hartman [Wed, 12 Sep 2007 22:06:57 +0000 (15:06 -0700)]
A number of different drivers incorrect access the kobject name field
directly.  This is not correct as the name might not be in the array.
Use the proper accessor function instead.

block/elevator.c
block/ll_rw_blk.c
drivers/acpi/bus.c
drivers/cpufreq/cpufreq.c
drivers/md/md.c
drivers/net/ibmveth.c
drivers/pci/setup-irq.c
fs/partitions/check.c
fs/sysfs/dir.c
net/bridge/br_sysfs_br.c

index c6d153d..b9c518a 100644 (file)
@@ -186,7 +186,7 @@ static elevator_t *elevator_alloc(struct request_queue *q,
        eq->ops = &e->ops;
        eq->elevator_type = e;
        kobject_init(&eq->kobj);
-       snprintf(eq->kobj.name, KOBJ_NAME_LEN, "%s", "iosched");
+       kobject_set_name(&eq->kobj, "%s", "iosched");
        eq->kobj.ktype = &elv_ktype;
        mutex_init(&eq->sysfs_lock);
 
index cd9d2c5..d875673 100644 (file)
@@ -1854,7 +1854,7 @@ struct request_queue *blk_alloc_queue_node(gfp_t gfp_mask, int node_id)
 
        init_timer(&q->unplug_timer);
 
-       snprintf(q->kobj.name, KOBJ_NAME_LEN, "%s", "queue");
+       kobject_set_name(&q->kobj, "%s", "queue");
        q->kobj.ktype = &queue_ktype;
        kobject_init(&q->kobj);
 
index feab124..cbfc815 100644 (file)
@@ -194,7 +194,7 @@ int acpi_bus_set_power(acpi_handle handle, int state)
 
        if (!device->flags.power_manageable) {
                ACPI_DEBUG_PRINT((ACPI_DB_INFO, "Device `[%s]' is not power manageable\n",
-                               device->dev.kobj.name));
+                               kobject_name(&device->dev.kobj)));
                return -ENODEV;
        }
        /*
index 2f6a73c..2ce3de5 100644 (file)
@@ -828,7 +828,7 @@ static int cpufreq_add_dev (struct sys_device * sys_dev)
        /* prepare interface data */
        policy->kobj.parent = &sys_dev->kobj;
        policy->kobj.ktype = &ktype_cpufreq;
-       strlcpy(policy->kobj.name, "cpufreq", KOBJ_NAME_LEN);
+       kobject_set_name(&policy->kobj, "cpufreq");
 
        ret = kobject_register(&policy->kobj);
        if (ret) {
index e8f102e..acf1b81 100644 (file)
@@ -3076,8 +3076,7 @@ static struct kobject *md_probe(dev_t dev, int *part, void *data)
        mddev->gendisk = disk;
        mutex_unlock(&disks_mutex);
        mddev->kobj.parent = &disk->kobj;
-       mddev->kobj.k_name = NULL;
-       snprintf(mddev->kobj.name, KOBJ_NAME_LEN, "%s", "md");
+       kobject_set_name(&mddev->kobj, "%s", "md");
        mddev->kobj.ktype = &md_ktype;
        if (kobject_register(&mddev->kobj))
                printk(KERN_WARNING "md: cannot register %s/md - name in use\n",
index 4ac161e..7d7758f 100644 (file)
@@ -1183,7 +1183,7 @@ static int __devinit ibmveth_probe(struct vio_dev *dev, const struct vio_device_
                                         pool_count[i], pool_size[i],
                                         pool_active[i]);
                kobj->parent = &dev->dev.kobj;
-               sprintf(kobj->name, "pool%d", i);
+               kobject_set_name(kobj, "pool%d", i);
                kobj->ktype = &ktype_veth_pool;
                kobject_register(kobj);
        }
index 568f187..05ca2ed 100644 (file)
@@ -48,7 +48,7 @@ pdev_fixup_irq(struct pci_dev *dev,
        dev->irq = irq;
 
        pr_debug("PCI: fixup irq: (%s) got %d\n",
-               dev->dev.kobj.name, dev->irq);
+               kobject_name(&dev->dev.kobj), dev->irq);
 
        /* Always tell the device, so the driver knows what is
           the real IRQ to use; the device does not use it. */
index 783c57e..722e12e 100644 (file)
@@ -381,10 +381,12 @@ void add_partition(struct gendisk *disk, int part, sector_t start, sector_t len,
        p->partno = part;
        p->policy = disk->policy;
 
-       if (isdigit(disk->kobj.name[strlen(disk->kobj.name)-1]))
-               snprintf(p->kobj.name,KOBJ_NAME_LEN,"%sp%d",disk->kobj.name,part);
+       if (isdigit(disk->kobj.k_name[strlen(disk->kobj.k_name)-1]))
+               kobject_set_name(&p->kobj, "%sp%d",
+                                kobject_name(&disk->kobj), part);
        else
-               snprintf(p->kobj.name,KOBJ_NAME_LEN,"%s%d",disk->kobj.name,part);
+               kobject_set_name(&p->kobj, "%s%d",
+                                kobject_name(&disk->kobj),part);
        p->kobj.parent = &disk->kobj;
        p->kobj.ktype = &ktype_part;
        kobject_init(&p->kobj);
@@ -477,9 +479,9 @@ void register_disk(struct gendisk *disk)
        struct hd_struct *p;
        int err;
 
-       strlcpy(disk->kobj.name,disk->disk_name,KOBJ_NAME_LEN);
+       kobject_set_name(&disk->kobj, "%s", disk->disk_name);
        /* ewww... some of these buggers have / in name... */
-       s = strchr(disk->kobj.name, '/');
+       s = strchr(disk->kobj.k_name, '/');
        if (s)
                *s = '!';
        if ((err = kobject_add(&disk->kobj)))
index 83e76b3..ea33b66 100644 (file)
@@ -1013,7 +1013,7 @@ again:
                goto again;
        }
 
-       new_dentry = lookup_one_len(kobj->name, new_parent, strlen(kobj->name));
+       new_dentry = lookup_one_len(kobject_name(kobj), new_parent, strlen(kobject_name(kobj)));
        if (IS_ERR(new_dentry)) {
                error = PTR_ERR(new_dentry);
                goto out_unlock;
index c65f54e..3312e8f 100644 (file)
@@ -435,7 +435,7 @@ int br_sysfs_addbr(struct net_device *dev)
        err = kobject_register(&br->ifobj);
        if (err) {
                pr_info("%s: can't add kobject (directory) %s/%s\n",
-                       __FUNCTION__, dev->name, br->ifobj.name);
+                       __FUNCTION__, dev->name, kobject_name(&br->ifobj));
                goto out3;
        }
        return 0;