Commit bd587aa0 authored by Kenji Kaneshige's avatar Kenji Kaneshige Committed by Greg Kroah-Hartman

[PATCH] PCI: warn of missing pci_disable_device()

As mentioned in Documentaion/pci.txt, pci device driver should call
pci_disable_device() when it decides to stop using the device. But
there are some drivers that don't use pci_disable_device() so far.

This patch adds warning messages that are displayed if the device is
removed without properly calling pci_disable_device().

'WARN_ON(1)' is commented out for now because I guess many people
(including some distros) enables 'CONFIG_DEBUG_KERNEL'. People might
be surprised if many stack dumps are displayed on their console.
Signed-off-by: default avatarKenji Kaneshige <kaneshige.kenji@jp.fujitsu.com>
Signed-off-by: default avatarGreg Kroah-Hartman <greg@kroah.com>
parent 6b8b1d3c
......@@ -291,6 +291,19 @@ static int pci_device_remove(struct device * dev)
drv->remove(pci_dev);
pci_dev->driver = NULL;
}
#ifdef CONFIG_DEBUG_KERNEL
/*
* If the driver decides to stop using the device, it should
* call pci_disable_device().
*/
if (pci_dev->is_enabled) {
dev_warn(&pci_dev->dev, "Device was removed without properly "
"calling pci_disable_device(). This may need fixing.\n");
/* WARN_ON(1); */
}
#endif /* CONFIG_DEBUG_KERNEL */
pci_dev_put(pci_dev);
return 0;
}
......
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