[PATCH] PCI Hotplug changes for 2.4.19-rc1-ac6

Greg KH (greg@kroah.com)
Tue, 16 Jul 2002 11:37:25 -0700


Hi,

Here's a patch against 2.4.19-rc1-ac6 that fixes a bug in the PCI core
for PCI hotplug drivers. When pci_scan_slot() is called,
pci_name_device() can eventually be called, which uses data declared as
__initdata, instead of __devinitdata. This patch from Takayoshi KOCHI
<t-kouchi@mvf.biglobe.ne.jp> fixes this problem (thanks also to him for
finding the bug in the first place.)

thanks,

greg k-h

diff -Nru a/drivers/pci/names.c b/drivers/pci/names.c
--- a/drivers/pci/names.c Tue Jul 16 11:27:01 2002
+++ b/drivers/pci/names.c Tue Jul 16 11:27:01 2002
@@ -32,18 +32,18 @@
* real memory.. Parse the same file multiple times
* to get all the info.
*/
-#define VENDOR( vendor, name ) static char __vendorstr_##vendor[] __initdata = name;
+#define VENDOR( vendor, name ) static char __vendorstr_##vendor[] __devinitdata = name;
#define ENDVENDOR()
-#define DEVICE( vendor, device, name ) static char __devicestr_##vendor##device[] __initdata = name;
+#define DEVICE( vendor, device, name ) static char __devicestr_##vendor##device[] __devinitdata = name;
#include "devlist.h"


-#define VENDOR( vendor, name ) static struct pci_device_info __devices_##vendor[] __initdata = {
+#define VENDOR( vendor, name ) static struct pci_device_info __devices_##vendor[] __devinitdata = {
#define ENDVENDOR() };
#define DEVICE( vendor, device, name ) { 0x##device, 0, __devicestr_##vendor##device },
#include "devlist.h"

-static struct pci_vendor_info __initdata pci_vendor_list[] = {
+static struct pci_vendor_info __devinitdata pci_vendor_list[] = {
#define VENDOR( vendor, name ) { 0x##vendor, sizeof(__devices_##vendor) / sizeof(struct pci_device_info), __vendorstr_##vendor, __devices_##vendor },
#define ENDVENDOR()
#define DEVICE( vendor, device, name )
@@ -121,7 +121,7 @@

#else

-void __init pci_name_device(struct pci_dev *dev)
+void __devinit pci_name_device(struct pci_dev *dev)
{
}

-
To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
the body of a message to majordomo@vger.kernel.org
More majordomo info at http://vger.kernel.org/majordomo-info.html
Please read the FAQ at http://www.tux.org/lkml/