diff options
Diffstat (limited to 'drivers/pci')
-rw-r--r-- | drivers/pci/pci-driver.c | 9 |
1 files changed, 7 insertions, 2 deletions
diff --git a/drivers/pci/pci-driver.c b/drivers/pci/pci-driver.c index 6d1a21611818..73e362992694 100644 --- a/drivers/pci/pci-driver.c +++ b/drivers/pci/pci-driver.c | |||
@@ -96,17 +96,21 @@ pci_create_newid_file(struct pci_driver *drv) | |||
96 | { | 96 | { |
97 | int error = 0; | 97 | int error = 0; |
98 | if (drv->probe != NULL) | 98 | if (drv->probe != NULL) |
99 | error = sysfs_create_file(&drv->driver.kobj, | 99 | error = driver_create_file(&drv->driver, &driver_attr_new_id); |
100 | &driver_attr_new_id.attr); | ||
101 | return error; | 100 | return error; |
102 | } | 101 | } |
103 | 102 | ||
103 | static void pci_remove_newid_file(struct pci_driver *drv) | ||
104 | { | ||
105 | driver_remove_file(&drv->driver, &driver_attr_new_id); | ||
106 | } | ||
104 | #else /* !CONFIG_HOTPLUG */ | 107 | #else /* !CONFIG_HOTPLUG */ |
105 | static inline void pci_free_dynids(struct pci_driver *drv) {} | 108 | static inline void pci_free_dynids(struct pci_driver *drv) {} |
106 | static inline int pci_create_newid_file(struct pci_driver *drv) | 109 | static inline int pci_create_newid_file(struct pci_driver *drv) |
107 | { | 110 | { |
108 | return 0; | 111 | return 0; |
109 | } | 112 | } |
113 | static inline void pci_remove_newid_file(struct pci_driver *drv) {} | ||
110 | #endif | 114 | #endif |
111 | 115 | ||
112 | /** | 116 | /** |
@@ -447,6 +451,7 @@ int __pci_register_driver(struct pci_driver *drv, struct module *owner, | |||
447 | void | 451 | void |
448 | pci_unregister_driver(struct pci_driver *drv) | 452 | pci_unregister_driver(struct pci_driver *drv) |
449 | { | 453 | { |
454 | pci_remove_newid_file(drv); | ||
450 | driver_unregister(&drv->driver); | 455 | driver_unregister(&drv->driver); |
451 | pci_free_dynids(drv); | 456 | pci_free_dynids(drv); |
452 | } | 457 | } |