PCI: add the sysfs driver name to all modules
authorGreg Kroah-Hartman <gregkh@suse.de>
Mon, 15 Jan 2007 19:50:02 +0000 (11:50 -0800)
committerGreg Kroah-Hartman <gregkh@suse.de>
Wed, 7 Feb 2007 18:37:12 +0000 (10:37 -0800)
This adds the module name to all PCI drivers, if they are built into the
kernel or not.  It will show up in /sys/modules/MODULE_NAME/drivers/

It also fixes up the IDE core, which was calling __pci_register_driver()
directly.

Cc: Kay Sievers <kay.sievers@suse.de>
Signed-off-by: Greg Kroah-Hartman <gregkh@suse.de>
drivers/ide/setup-pci.c
drivers/pci/pci-driver.c
include/linux/ide.h
include/linux/pci.h

index 695e23904d3030e61c4f2ba24d88740415847a07..a52c80fe7d3e5d6e05a3995d5dd75af9965e3fe7 100644 (file)
@@ -783,10 +783,11 @@ static LIST_HEAD(ide_pci_drivers);
  *     Returns are the same as for pci_register_driver
  */
 
-int __ide_pci_register_driver(struct pci_driver *driver, struct module *module)
+int __ide_pci_register_driver(struct pci_driver *driver, struct module *module,
+                             const char *mod_name)
 {
        if(!pre_init)
-               return __pci_register_driver(driver, module);
+               return __pci_register_driver(driver, module, mod_name);
        driver->driver.owner = module;
        list_add_tail(&driver->node, &ide_pci_drivers);
        return 0;
@@ -862,6 +863,6 @@ void __init ide_scan_pcibus (int scan_direction)
        {
                list_del(l);
                d = list_entry(l, struct pci_driver, node);
-               __pci_register_driver(d, d->driver.owner);
+               __pci_register_driver(d, d->driver.owner, d->driver.mod_name);
        }
 }
index 92d5e8db0de7b63f0c92a761551af5452db30673..358766885260c43e1f9b00d75f9f3356cd306a6e 100644 (file)
@@ -422,7 +422,8 @@ static struct kobj_type pci_driver_kobj_type = {
  * If no error occurred, the driver remains registered even if 
  * no device was claimed during registration.
  */
-int __pci_register_driver(struct pci_driver *drv, struct module *owner)
+int __pci_register_driver(struct pci_driver *drv, struct module *owner,
+                         const char *mod_name)
 {
        int error;
 
@@ -430,6 +431,7 @@ int __pci_register_driver(struct pci_driver *drv, struct module *owner)
        drv->driver.name = drv->name;
        drv->driver.bus = &pci_bus_type;
        drv->driver.owner = owner;
+       drv->driver.mod_name = mod_name;
        drv->driver.kobj.ktype = &pci_driver_kobj_type;
 
        if (pci_multithread_probe)
index e26a03981a94a0abc9f4ea59e68ae3cf27967238..827688f41d6cc7cb1338f13bb5c28f7d9b7252af 100644 (file)
@@ -1192,8 +1192,8 @@ void ide_init_disk(struct gendisk *, ide_drive_t *);
 extern int ideprobe_init(void);
 
 extern void ide_scan_pcibus(int scan_direction) __init;
-extern int __ide_pci_register_driver(struct pci_driver *driver, struct module *owner);
-#define ide_pci_register_driver(d) __ide_pci_register_driver(d, THIS_MODULE)
+extern int __ide_pci_register_driver(struct pci_driver *driver, struct module *owner, const char *mod_name);
+#define ide_pci_register_driver(d) __ide_pci_register_driver(d, THIS_MODULE, KBUILD_MODNAME)
 void ide_pci_setup_ports(struct pci_dev *, struct ide_pci_device_s *, int, ata_index_t *);
 extern void ide_setup_pci_noise (struct pci_dev *dev, struct ide_pci_device_s *d);
 
index f3c617eabd8dd9ebe85ce979f343ca36e3db55f0..cb899eb95d31edb61f386bd3d62029b7f9e02c87 100644 (file)
@@ -573,10 +573,11 @@ int __must_check pci_bus_alloc_resource(struct pci_bus *bus,
 void pci_enable_bridges(struct pci_bus *bus);
 
 /* Proper probing supporting hot-pluggable devices */
-int __must_check __pci_register_driver(struct pci_driver *, struct module *);
+int __must_check __pci_register_driver(struct pci_driver *, struct module *,
+                                      const char *mod_name);
 static inline int __must_check pci_register_driver(struct pci_driver *driver)
 {
-       return __pci_register_driver(driver, THIS_MODULE);
+       return __pci_register_driver(driver, THIS_MODULE, KBUILD_MODNAME);
 }
 
 void pci_unregister_driver(struct pci_driver *);