Message ID | 49F6B350.9080703@kernel.org (mailing list archive) |
---|---|
State | RFC, archived |
Headers | show |
On Tue, Apr 28, 2009 at 09:42, Yinghai Lu <yinghai@kernel.org> wrote: > > those about 1/3 dev_set_name() etc. put_device()? http://git.kernel.org/?p=linux/kernel/git/torvalds/linux-2.6.git;a=blob;f=drivers/base/core.c;h=4aa527b8a91381289eb175b33f46e3e418d10374;hb=HEAD#l848 Kay -- To unsubscribe from this list: send the line "unsubscribe linux-pci" in the body of a message to majordomo@vger.kernel.org More majordomo info at http://vger.kernel.org/majordomo-info.html
On Tue, Apr 28, 2009 at 12:42:08AM -0700, Yinghai Lu wrote: > > those about 1/3 dev_set_name() etc. > > wonder if there is better way to do that I don't see why this is needed, the name will be cleaned up when the device goes away, automatically, right? still confused, greg k-h -- To unsubscribe from this list: send the line "unsubscribe linux-pci" in the body of a message to majordomo@vger.kernel.org More majordomo info at http://vger.kernel.org/majordomo-info.html
Kay Sievers wrote: > On Tue, Apr 28, 2009 at 09:42, Yinghai Lu <yinghai@kernel.org> wrote: >> those about 1/3 dev_set_name() etc. > > put_device()? > > http://git.kernel.org/?p=linux/kernel/git/torvalds/linux-2.6.git;a=blob;f=drivers/base/core.c;h=4aa527b8a91381289eb175b33f46e3e418d10374;hb=HEAD#l848 > ok, normal release path seems right, put_device will free the name. how about other fail path, that there is not put_device involved? YH -- To unsubscribe from this list: send the line "unsubscribe linux-pci" in the body of a message to majordomo@vger.kernel.org More majordomo info at http://vger.kernel.org/majordomo-info.html
Yinghai Lu wrote: > Kay Sievers wrote: >> On Tue, Apr 28, 2009 at 09:42, Yinghai Lu <yinghai@kernel.org> wrote: >>> those about 1/3 dev_set_name() etc. >> put_device()? >> >> http://git.kernel.org/?p=linux/kernel/git/torvalds/linux-2.6.git;a=blob;f=drivers/base/core.c;h=4aa527b8a91381289eb175b33f46e3e418d10374;hb=HEAD#l848 >> > ok, normal release path seems right, put_device will free the name. > > how about other fail path, that there is not put_device involved? > looks like need to follow this pattern static int sa1111_init_one_child(struct sa1111 *sachip, struct resource *parent, struct sa1111_dev_info *info) { struct sa1111_dev *dev; int ret; dev = kzalloc(sizeof(struct sa1111_dev), GFP_KERNEL); if (!dev) { ret = -ENOMEM; goto out; } dev_set_name(&dev->dev, "%4.4lx", info->offset); dev->devid = info->devid; dev->dev.parent = sachip->dev; dev->dev.bus = &sa1111_bus_type; dev->dev.release = sa1111_dev_release; dev->dev.coherent_dma_mask = sachip->dev->coherent_dma_mask; dev->res.start = sachip->phys + info->offset; dev->res.end = dev->res.start + 511; dev->res.name = dev_name(&dev->dev); dev->res.flags = IORESOURCE_MEM; dev->mapbase = sachip->base + info->offset; dev->skpcr_mask = info->skpcr_mask; memmove(dev->irq, info->irq, sizeof(dev->irq)); ret = request_resource(parent, &dev->res); if (ret) { printk("SA1111: failed to allocate resource for %s\n", dev->res.name); dev_set_name(&dev->dev, NULL); ============> clear the name kfree(dev); goto out; } ret = device_register(&dev->dev); if (ret) { release_resource(&dev->res); put_device(&dev->dev); ==================> put the device... kfree(dev); goto out; } YH -- To unsubscribe from this list: send the line "unsubscribe linux-pci" in the body of a message to majordomo@vger.kernel.org More majordomo info at http://vger.kernel.org/majordomo-info.html
On Tue, Apr 28, 2009 at 08:34:29AM -0700, Yinghai Lu wrote: > Yinghai Lu wrote: > > Kay Sievers wrote: > >> On Tue, Apr 28, 2009 at 09:42, Yinghai Lu <yinghai@kernel.org> wrote: > >>> those about 1/3 dev_set_name() etc. > >> put_device()? > >> > >> http://git.kernel.org/?p=linux/kernel/git/torvalds/linux-2.6.git;a=blob;f=drivers/base/core.c;h=4aa527b8a91381289eb175b33f46e3e418d10374;hb=HEAD#l848 > >> > > ok, normal release path seems right, put_device will free the name. > > > > how about other fail path, that there is not put_device involved? > > > > looks like need to follow this pattern > > static int > sa1111_init_one_child(struct sa1111 *sachip, struct resource *parent, > struct sa1111_dev_info *info) > { > struct sa1111_dev *dev; > int ret; > > dev = kzalloc(sizeof(struct sa1111_dev), GFP_KERNEL); > if (!dev) { > ret = -ENOMEM; > goto out; > } > > dev_set_name(&dev->dev, "%4.4lx", info->offset); > dev->devid = info->devid; > dev->dev.parent = sachip->dev; > dev->dev.bus = &sa1111_bus_type; > dev->dev.release = sa1111_dev_release; > dev->dev.coherent_dma_mask = sachip->dev->coherent_dma_mask; > dev->res.start = sachip->phys + info->offset; > dev->res.end = dev->res.start + 511; > dev->res.name = dev_name(&dev->dev); > dev->res.flags = IORESOURCE_MEM; > dev->mapbase = sachip->base + info->offset; > dev->skpcr_mask = info->skpcr_mask; > memmove(dev->irq, info->irq, sizeof(dev->irq)); > > ret = request_resource(parent, &dev->res); > if (ret) { > printk("SA1111: failed to allocate resource for %s\n", > dev->res.name); > dev_set_name(&dev->dev, NULL); ============> clear the name > kfree(dev); > goto out; > } > > > ret = device_register(&dev->dev); > if (ret) { > release_resource(&dev->res); > put_device(&dev->dev); ==================> put the device... > kfree(dev); > goto out; > } You can just do a "put_device()" in both places, and it should be fine. thanks, greg k-h -- To unsubscribe from this list: send the line "unsubscribe linux-pci" in the body of a message to majordomo@vger.kernel.org More majordomo info at http://vger.kernel.org/majordomo-info.html
Greg KH wrote: > On Tue, Apr 28, 2009 at 08:34:29AM -0700, Yinghai Lu wrote: >> Yinghai Lu wrote: >>> Kay Sievers wrote: >>>> On Tue, Apr 28, 2009 at 09:42, Yinghai Lu <yinghai@kernel.org> wrote: >>>>> those about 1/3 dev_set_name() etc. >>>> put_device()? >>>> >>>> http://git.kernel.org/?p=linux/kernel/git/torvalds/linux-2.6.git;a=blob;f=drivers/base/core.c;h=4aa527b8a91381289eb175b33f46e3e418d10374;hb=HEAD#l848 >>>> >>> ok, normal release path seems right, put_device will free the name. >>> >>> how about other fail path, that there is not put_device involved? >>> >> >> looks like need to follow this pattern >> >> static int >> sa1111_init_one_child(struct sa1111 *sachip, struct resource *parent, >> struct sa1111_dev_info *info) >> { >> struct sa1111_dev *dev; >> int ret; >> >> dev = kzalloc(sizeof(struct sa1111_dev), GFP_KERNEL); >> if (!dev) { >> ret = -ENOMEM; >> goto out; >> } >> >> dev_set_name(&dev->dev, "%4.4lx", info->offset); >> dev->devid = info->devid; >> dev->dev.parent = sachip->dev; >> dev->dev.bus = &sa1111_bus_type; >> dev->dev.release = sa1111_dev_release; >> dev->dev.coherent_dma_mask = sachip->dev->coherent_dma_mask; >> dev->res.start = sachip->phys + info->offset; >> dev->res.end = dev->res.start + 511; >> dev->res.name = dev_name(&dev->dev); >> dev->res.flags = IORESOURCE_MEM; >> dev->mapbase = sachip->base + info->offset; >> dev->skpcr_mask = info->skpcr_mask; >> memmove(dev->irq, info->irq, sizeof(dev->irq)); >> >> ret = request_resource(parent, &dev->res); >> if (ret) { >> printk("SA1111: failed to allocate resource for %s\n", >> dev->res.name); >> dev_set_name(&dev->dev, NULL); ============> clear the name >> kfree(dev); >> goto out; >> } >> >> >> ret = device_register(&dev->dev); >> if (ret) { >> release_resource(&dev->res); >> put_device(&dev->dev); ==================> put the device... >> kfree(dev); >> goto out; >> } > > You can just do a "put_device()" in both places, and it should be fine. > before device_register==>device_initialize is called, kobj->ref is still 0. will get warn from if (!kobj->state_initialized) WARN(1, KERN_WARNING "kobject: '%s' (%p): is not " "initialized, yet kobject_put() is being " "called.\n", kobject_name(kobj), kobj); also wonder int kref_put(struct kref *kref, void (*release)(struct kref *kref)) { WARN_ON(release == NULL); WARN_ON(release == (void (*)(struct kref *))kfree); if (atomic_dec_and_test(&kref->refcount)) { release(kref); return 1; } return 0; } what will be return from atomic_dec_and_test YH -- To unsubscribe from this list: send the line "unsubscribe linux-pci" in the body of a message to majordomo@vger.kernel.org More majordomo info at http://vger.kernel.org/majordomo-info.html
On Tue, Apr 28, 2009 at 17:51, Yinghai Lu <yinghai@kernel.org> wrote: > before device_register==>device_initialize is called, kobj->ref is still 0. > > will get warn from > Â Â Â Â Â Â Â Â if (!kobj->state_initialized) Initialize the device before you do anything with it. And call _put() any time to get rid of ressources, which might have been allocated before registering. Thanks, Kay -- To unsubscribe from this list: send the line "unsubscribe linux-pci" in the body of a message to majordomo@vger.kernel.org More majordomo info at http://vger.kernel.org/majordomo-info.html
Kay Sievers wrote: > On Tue, Apr 28, 2009 at 17:51, Yinghai Lu <yinghai@kernel.org> wrote: > >> before device_register==>device_initialize is called, kobj->ref is still 0. >> >> will get warn from >> if (!kobj->state_initialized) > > Initialize the device before you do anything with it. And call _put() > any time to get rid of ressources, which might have been allocated > before registering. > struct sa1111_dev *dev; int ret; dev = kzalloc(sizeof(struct sa1111_dev), GFP_KERNEL); if (!dev) { ret = -ENOMEM; goto out; } dev_set_name(&dev->dev, "%4.4lx", info->offset); dev->devid = info->devid; dev->dev.parent = sachip->dev; dev->dev.bus = &sa1111_bus_type; dev->dev.release = sa1111_dev_release; dev->dev.coherent_dma_mask = sachip->dev->coherent_dma_mask; dev->res.start = sachip->phys + info->offset; dev->res.end = dev->res.start + 511; dev->res.name = dev_name(&dev->dev); dev->res.flags = IORESOURCE_MEM; dev->mapbase = sachip->base + info->offset; dev->skpcr_mask = info->skpcr_mask; memmove(dev->irq, info->irq, sizeof(dev->irq)); ret = request_resource(parent, &dev->res); if (ret) { printk("SA1111: failed to allocate resource for %s\n", dev->res.name); dev_set_name(&dev->dev, NULL); kfree(dev); goto out; } ret = device_register(&dev->dev); if (ret) { release_resource(&dev->res); put_device(&dev->dev); kfree(dev); goto out; } so you mean don't call dev_set_name before device_register and let device_register or device_add take name param? YH -- To unsubscribe from this list: send the line "unsubscribe linux-pci" in the body of a message to majordomo@vger.kernel.org More majordomo info at http://vger.kernel.org/majordomo-info.html
On Tue, Apr 28, 2009 at 18:08, Yinghai Lu <yinghai@kernel.org> wrote: > Kay Sievers wrote: >> On Tue, Apr 28, 2009 at 17:51, Yinghai Lu <yinghai@kernel.org> wrote: >> >>> before device_register==>device_initialize is called, kobj->ref is still 0. >>> >>> will get warn from >>> Â Â Â Â Â Â Â Â if (!kobj->state_initialized) >> >> Initialize the device before you do anything with it. And call _put() >> any time to get rid of ressources, which might have been allocated >> before registering. > so you mean don't call dev_set_name before device_register and let device_register or device_add take name param? No. I meant: device_initialize() call put_device() any time you want to get rid of ressources of the device device_set_name() call put_device() any time you want to get rid of ressources of the device device_register() ... Kay -- To unsubscribe from this list: send the line "unsubscribe linux-pci" in the body of a message to majordomo@vger.kernel.org More majordomo info at http://vger.kernel.org/majordomo-info.html
Kay Sievers wrote: > On Tue, Apr 28, 2009 at 17:51, Yinghai Lu <yinghai@kernel.org> wrote: > >> before device_register==>device_initialize is called, kobj->ref is still 0. >> >> will get warn from >> if (!kobj->state_initialized) > > Initialize the device before you do anything with it. And call _put() > any time to get rid of ressources, which might have been allocated > before registering. need to replace device_register with device_add and call device_initialize before device_set_name? YH -- To unsubscribe from this list: send the line "unsubscribe linux-pci" in the body of a message to majordomo@vger.kernel.org More majordomo info at http://vger.kernel.org/majordomo-info.html
On Tue, Apr 28, 2009 at 18:36, Yinghai Lu <yinghai@kernel.org> wrote: > Kay Sievers wrote: >> On Tue, Apr 28, 2009 at 17:51, Yinghai Lu <yinghai@kernel.org> wrote: >> >>> before device_register==>device_initialize is called, kobj->ref is still 0. >>> >>> will get warn from >>> Â Â Â Â Â Â Â Â if (!kobj->state_initialized) >> >> Initialize the device before you do anything with it. And call _put() >> any time to get rid of ressources, which might have been allocated >> before registering. > > need to replace device_register with device_add and call device_initialize before device_set_name? Sounds right in the case you want to jump out between set_name() and _register() -- means you have an uninitialized device, where you can not call put_device(). Otherwise after a failing _register() it should work fine. Kay -- To unsubscribe from this list: send the line "unsubscribe linux-pci" in the body of a message to majordomo@vger.kernel.org More majordomo info at http://vger.kernel.org/majordomo-info.html
Index: linux-2.6/arch/arm/common/locomo.c =================================================================== --- linux-2.6.orig/arch/arm/common/locomo.c +++ linux-2.6/arch/arm/common/locomo.c @@ -559,6 +559,7 @@ locomo_init_one_child(struct locomo *lch ret = device_register(&dev->dev); if (ret) { + dev_set_name(&dev->dev, NULL); out: kfree(dev); } Index: linux-2.6/arch/arm/common/sa1111.c =================================================================== --- linux-2.6.orig/arch/arm/common/sa1111.c +++ linux-2.6/arch/arm/common/sa1111.c @@ -577,6 +577,7 @@ sa1111_init_one_child(struct sa1111 *sac ret = device_register(&dev->dev); if (ret) { release_resource(&dev->res); + dev_set_name(&dev->dev, NULL); kfree(dev); goto out; } Index: linux-2.6/arch/arm/kernel/ecard.c =================================================================== --- linux-2.6.orig/arch/arm/kernel/ecard.c +++ linux-2.6/arch/arm/kernel/ecard.c @@ -795,6 +795,7 @@ static void __init ecard_free_card(struc if (ec->resource[i].flags) release_resource(&ec->resource[i]); + dev_set_name(&ec->dev, NULL); kfree(ec); } Index: linux-2.6/arch/arm/mach-integrator/impd1.c =================================================================== --- linux-2.6.orig/arch/arm/mach-integrator/impd1.c +++ linux-2.6/arch/arm/mach-integrator/impd1.c @@ -412,6 +412,7 @@ static int impd1_probe(struct lm_device ret = amba_device_register(d, &dev->resource); if (ret) { dev_err(&d->dev, "unable to register device: %d\n", ret); + dev_set_name(&d->dev, NULL); kfree(d); } } Index: linux-2.6/arch/arm/mach-integrator/lm.c =================================================================== --- linux-2.6.orig/arch/arm/mach-integrator/lm.c +++ linux-2.6/arch/arm/mach-integrator/lm.c @@ -71,6 +71,7 @@ static void lm_device_release(struct dev { struct lm_device *d = to_lm_device(dev); + dev_set_name(&dev, NULL); kfree(d); } @@ -92,6 +93,9 @@ int lm_device_register(struct lm_device if (ret) release_resource(&dev->resource); } + if (ret) + dev_set_name(&dev->dev, NULL); + return ret; } Index: linux-2.6/arch/ia64/sn/kernel/tiocx.c =================================================================== --- linux-2.6.orig/arch/ia64/sn/kernel/tiocx.c +++ linux-2.6/arch/ia64/sn/kernel/tiocx.c @@ -73,6 +73,7 @@ static int tiocx_uevent(struct device *d static void tiocx_bus_release(struct device *dev) { + dev_set_name(dev, NULL); kfree(to_cx_dev(dev)); } Index: linux-2.6/arch/mips/kernel/vpe.c =================================================================== --- linux-2.6.orig/arch/mips/kernel/vpe.c +++ linux-2.6/arch/mips/kernel/vpe.c @@ -1585,6 +1585,7 @@ out_reenable: return 0; out_class: + dev_set_name(&vpe_device, NULL); class_unregister(&vpe_class); out_chrdev: unregister_chrdev(major, module_name); Index: linux-2.6/arch/parisc/kernel/drivers.c =================================================================== --- linux-2.6.orig/arch/parisc/kernel/drivers.c +++ linux-2.6/arch/parisc/kernel/drivers.c @@ -427,6 +427,7 @@ struct parisc_device * create_tree_node( dev->dev.dma_mask = &dev->dma_mask; dev->dev.coherent_dma_mask = dev->dma_mask; if (device_register(&dev->dev)) { + dev_set_name(&dev->dev, NULL); kfree(dev); return NULL; } Index: linux-2.6/arch/powerpc/kernel/vio.c =================================================================== --- linux-2.6.orig/arch/powerpc/kernel/vio.c +++ linux-2.6/arch/powerpc/kernel/vio.c @@ -1246,6 +1246,7 @@ struct vio_dev *vio_register_device_node printk(KERN_ERR "%s: failed to register device %s\n", __func__, dev_name(&viodev->dev)); /* XXX free TCE table */ + dev_set_name(&viodev->dev, NULL); kfree(viodev); return NULL; } Index: linux-2.6/arch/powerpc/platforms/ps3/system-bus.c =================================================================== --- linux-2.6.orig/arch/powerpc/platforms/ps3/system-bus.c +++ linux-2.6/arch/powerpc/platforms/ps3/system-bus.c @@ -769,6 +769,10 @@ int ps3_system_bus_device_register(struc pr_debug("%s:%d add %s\n", __func__, __LINE__, dev_name(&dev->core)); result = device_register(&dev->core); + + if (result) + dev_set_name(&dev->core, NULL); + return result; } Index: linux-2.6/arch/sparc/kernel/of_device_32.c =================================================================== --- linux-2.6.orig/arch/sparc/kernel/of_device_32.c +++ linux-2.6/arch/sparc/kernel/of_device_32.c @@ -587,6 +587,7 @@ build_resources: if (of_device_register(op)) { printk("%s: Could not register of device.\n", dp->full_name); + dev_set_name(&op->dev, NULL); kfree(op); op = NULL; } Index: linux-2.6/arch/sparc/kernel/of_device_64.c =================================================================== --- linux-2.6.orig/arch/sparc/kernel/of_device_64.c +++ linux-2.6/arch/sparc/kernel/of_device_64.c @@ -855,6 +855,7 @@ static struct of_device * __init scan_on if (of_device_register(op)) { printk("%s: Could not register of device.\n", dp->full_name); + dev_set_name(&op->dev, NULL); kfree(op); op = NULL; } Index: linux-2.6/arch/sparc/kernel/vio.c =================================================================== --- linux-2.6.orig/arch/sparc/kernel/vio.c +++ linux-2.6/arch/sparc/kernel/vio.c @@ -296,6 +296,7 @@ static struct vio_dev *vio_create_one(st if (err) { printk(KERN_ERR "VIO: Could not register device %s, err=%d\n", dev_name(&vdev->dev), err); + dev_set_name(&vdev->dev, NULL); kfree(vdev); return NULL; } Index: linux-2.6/drivers/acpi/scan.c =================================================================== --- linux-2.6.orig/drivers/acpi/scan.c +++ linux-2.6/drivers/acpi/scan.c @@ -1325,6 +1325,7 @@ acpi_add_single_object(struct acpi_devic *child = device; else { kfree(device->pnp.cid_list); + dev_set_name(&device->dev, NULL); kfree(device); } Index: linux-2.6/drivers/base/firmware_class.c =================================================================== --- linux-2.6.orig/drivers/base/firmware_class.c +++ linux-2.6/drivers/base/firmware_class.c @@ -330,6 +330,7 @@ static int fw_register_device(struct dev error_kfree: kfree(fw_priv); + dev_set_name(f_dev, NULL); kfree(f_dev); return retval; } Index: linux-2.6/drivers/base/platform.c =================================================================== --- linux-2.6.orig/drivers/base/platform.c +++ linux-2.6/drivers/base/platform.c @@ -293,6 +293,7 @@ int platform_device_add(struct platform_ return ret; failed: + dev_set_name(&pdev->dev, NULL); while (--i >= 0) { struct resource *r = &pdev->resource[i]; unsigned long type = resource_type(r); Index: linux-2.6/drivers/dio/dio.c =================================================================== --- linux-2.6.orig/drivers/dio/dio.c +++ linux-2.6/drivers/dio/dio.c @@ -186,6 +186,7 @@ static int __init dio_init(void) error = device_register(&dio_bus.dev); if (error) { pr_err("DIO: Error registering dio_bus\n"); + dev_set_name(&dio_bus.dev, NULL); return error; } @@ -261,6 +262,8 @@ static int __init dio_init(void) if (error) { pr_err("DIO: Error registering device %s\n", dev->name); + dev_set_name(&dev->dev, NULL); + kfree(dev); continue; } error = dio_create_sysfs_dev_files(dev); Index: linux-2.6/drivers/dma/dmaengine.c =================================================================== --- linux-2.6.orig/drivers/dma/dmaengine.c +++ linux-2.6/drivers/dma/dmaengine.c @@ -699,6 +699,7 @@ int dma_async_device_register(struct dma if (rc) { free_percpu(chan->local); chan->local = NULL; + dev_set_name(&chan->dev->device, NULL); kfree(chan->dev); atomic_dec(idr_ref); goto err_out; Index: linux-2.6/drivers/eisa/eisa-bus.c =================================================================== --- linux-2.6.orig/drivers/eisa/eisa-bus.c +++ linux-2.6/drivers/eisa/eisa-bus.c @@ -322,6 +322,7 @@ static int __init eisa_probe (struct eis if (eisa_init_device (root, edev, 0)) { eisa_release_resources (edev); + dev_set_name(&edev->dev, NULL); kfree (edev); if (!root->force_probe) return -ENODEV; Index: linux-2.6/drivers/firewire/fw-device.c =================================================================== --- linux-2.6.orig/drivers/firewire/fw-device.c +++ linux-2.6/drivers/firewire/fw-device.c @@ -529,6 +529,7 @@ static void fw_unit_release(struct devic { struct fw_unit *unit = fw_unit(dev); + dev_set_name(dev, NULL); kfree(unit); } @@ -579,6 +580,7 @@ static void create_units(struct fw_devic continue; skip_unit: + dev_set_name(&unit->device, NULL); kfree(unit); } } @@ -675,6 +677,7 @@ static void fw_device_release(struct dev fw_node_put(device->node); kfree(device->config_rom); + dev_set_name(dev, NULL); kfree(device); fw_card_put(card); } Index: linux-2.6/drivers/firmware/dmi-id.c =================================================================== --- linux-2.6.orig/drivers/firmware/dmi-id.c +++ linux-2.6/drivers/firmware/dmi-id.c @@ -158,9 +158,15 @@ static int dmi_dev_uevent(struct device return 0; } +static void dmi_dev_release(struct device *dev) +{ + dev_set_name(dev, NULL); + kfree(dev); +} + static struct class dmi_class = { .name = "dmi", - .dev_release = (void(*)(struct device *)) kfree, + .dev_release = dmi_dev_release, .dev_uevent = dmi_dev_uevent, };
those about 1/3 dev_set_name() etc. wonder if there is better way to do that Signed-off-by: Yinghai Lu <yinghai@kernel.org> --- arch/arm/common/locomo.c | 1 + arch/arm/common/sa1111.c | 1 + arch/arm/kernel/ecard.c | 1 + arch/arm/mach-integrator/impd1.c | 1 + arch/arm/mach-integrator/lm.c | 4 ++++ arch/ia64/sn/kernel/tiocx.c | 1 + arch/mips/kernel/vpe.c | 1 + arch/parisc/kernel/drivers.c | 1 + arch/powerpc/kernel/vio.c | 1 + arch/powerpc/platforms/ps3/system-bus.c | 4 ++++ arch/sparc/kernel/of_device_32.c | 1 + arch/sparc/kernel/of_device_64.c | 1 + arch/sparc/kernel/vio.c | 1 + drivers/acpi/scan.c | 1 + drivers/base/firmware_class.c | 1 + drivers/base/platform.c | 1 + drivers/dio/dio.c | 3 +++ drivers/dma/dmaengine.c | 1 + drivers/eisa/eisa-bus.c | 1 + drivers/firewire/fw-device.c | 3 +++ drivers/firmware/dmi-id.c | 8 +++++++- 21 files changed, 37 insertions(+), 1 deletion(-) -- To unsubscribe from this list: send the line "unsubscribe linux-pci" in the body of a message to majordomo@vger.kernel.org More majordomo info at http://vger.kernel.org/majordomo-info.html