diff options
author | Greg Kroah-Hartman <gregkh@suse.de> | 2007-01-15 14:50:02 -0500 |
---|---|---|
committer | Greg Kroah-Hartman <gregkh@suse.de> | 2007-02-07 13:37:12 -0500 |
commit | 725522b5453dd680412f2b6463a988e4fd148757 (patch) | |
tree | 45ebe3c30f974ce2311781db428cd3ba4cb4364c /drivers | |
parent | fe480a2675ed236af396597d9f05245c7bbd0149 (diff) |
PCI: add the sysfs driver name to all modules
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>
Diffstat (limited to 'drivers')
-rw-r--r-- | drivers/ide/setup-pci.c | 7 | ||||
-rw-r--r-- | drivers/pci/pci-driver.c | 4 |
2 files changed, 7 insertions, 4 deletions
diff --git a/drivers/ide/setup-pci.c b/drivers/ide/setup-pci.c index 695e23904d30..a52c80fe7d3e 100644 --- a/drivers/ide/setup-pci.c +++ b/drivers/ide/setup-pci.c | |||
@@ -783,10 +783,11 @@ static LIST_HEAD(ide_pci_drivers); | |||
783 | * Returns are the same as for pci_register_driver | 783 | * Returns are the same as for pci_register_driver |
784 | */ | 784 | */ |
785 | 785 | ||
786 | int __ide_pci_register_driver(struct pci_driver *driver, struct module *module) | 786 | int __ide_pci_register_driver(struct pci_driver *driver, struct module *module, |
787 | const char *mod_name) | ||
787 | { | 788 | { |
788 | if(!pre_init) | 789 | if(!pre_init) |
789 | return __pci_register_driver(driver, module); | 790 | return __pci_register_driver(driver, module, mod_name); |
790 | driver->driver.owner = module; | 791 | driver->driver.owner = module; |
791 | list_add_tail(&driver->node, &ide_pci_drivers); | 792 | list_add_tail(&driver->node, &ide_pci_drivers); |
792 | return 0; | 793 | return 0; |
@@ -862,6 +863,6 @@ void __init ide_scan_pcibus (int scan_direction) | |||
862 | { | 863 | { |
863 | list_del(l); | 864 | list_del(l); |
864 | d = list_entry(l, struct pci_driver, node); | 865 | d = list_entry(l, struct pci_driver, node); |
865 | __pci_register_driver(d, d->driver.owner); | 866 | __pci_register_driver(d, d->driver.owner, d->driver.mod_name); |
866 | } | 867 | } |
867 | } | 868 | } |
diff --git a/drivers/pci/pci-driver.c b/drivers/pci/pci-driver.c index 92d5e8db0de7..358766885260 100644 --- a/drivers/pci/pci-driver.c +++ b/drivers/pci/pci-driver.c | |||
@@ -422,7 +422,8 @@ static struct kobj_type pci_driver_kobj_type = { | |||
422 | * If no error occurred, the driver remains registered even if | 422 | * If no error occurred, the driver remains registered even if |
423 | * no device was claimed during registration. | 423 | * no device was claimed during registration. |
424 | */ | 424 | */ |
425 | int __pci_register_driver(struct pci_driver *drv, struct module *owner) | 425 | int __pci_register_driver(struct pci_driver *drv, struct module *owner, |
426 | const char *mod_name) | ||
426 | { | 427 | { |
427 | int error; | 428 | int error; |
428 | 429 | ||
@@ -430,6 +431,7 @@ int __pci_register_driver(struct pci_driver *drv, struct module *owner) | |||
430 | drv->driver.name = drv->name; | 431 | drv->driver.name = drv->name; |
431 | drv->driver.bus = &pci_bus_type; | 432 | drv->driver.bus = &pci_bus_type; |
432 | drv->driver.owner = owner; | 433 | drv->driver.owner = owner; |
434 | drv->driver.mod_name = mod_name; | ||
433 | drv->driver.kobj.ktype = &pci_driver_kobj_type; | 435 | drv->driver.kobj.ktype = &pci_driver_kobj_type; |
434 | 436 | ||
435 | if (pci_multithread_probe) | 437 | if (pci_multithread_probe) |