Commit 794f5bfa authored by Christoph Hellwig's avatar Christoph Hellwig Committed by Linus Torvalds

[PATCH] PCI: don't override drv->shutdown unconditionally

There are many drivers that have been setting the generic driver
model level shutdown callback, and pci thus must not override it.

Without this patch we can have really bad data loss on various
raid controllers.
Signed-off-by: default avatarGreg Kroah-Hartman <gregkh@suse.de>
Signed-off-by: default avatarLinus Torvalds <torvalds@osdl.org>
parent caf2857a
...@@ -393,7 +393,10 @@ int pci_register_driver(struct pci_driver *drv) ...@@ -393,7 +393,10 @@ int pci_register_driver(struct pci_driver *drv)
drv->driver.bus = &pci_bus_type; drv->driver.bus = &pci_bus_type;
drv->driver.probe = pci_device_probe; drv->driver.probe = pci_device_probe;
drv->driver.remove = pci_device_remove; drv->driver.remove = pci_device_remove;
drv->driver.shutdown = pci_device_shutdown, /* FIXME, once all of the existing PCI drivers have been fixed to set
* the pci shutdown function, this test can go away. */
if (!drv->driver.shutdown)
drv->driver.shutdown = pci_device_shutdown,
drv->driver.owner = drv->owner; drv->driver.owner = drv->owner;
drv->driver.kobj.ktype = &pci_driver_kobj_type; drv->driver.kobj.ktype = &pci_driver_kobj_type;
pci_init_dynids(&drv->dynids); pci_init_dynids(&drv->dynids);
......
Markdown is supported
0%
or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment