Эх сурвалжийг харах

[PATCH] ppc64: Fix PCI hotplug

pSeries_irq_bus_setup is marked __devinit but references s7a_workaround
which is marked __initdata.

Depending on who got the memory for s7a_workaround (and if the value was
now positive), it was possible for PCI hotplugged devices to have 3
subtracted from their interrupt number.  This would happen randomly and
caused me much confusion :)

Signed-off-by: Anton Blanchard <anton@samba.org>
Signed-off-by: Andrew Morton <akpm@osdl.org>
Signed-off-by: Linus Torvalds <torvalds@osdl.org>
Anton Blanchard 19 жил өмнө
parent
commit
e4314bf496

+ 2 - 2
arch/ppc64/kernel/pSeries_pci.c

@@ -32,7 +32,7 @@
 
 
 #include "pci.h"
 #include "pci.h"
 
 
-static int __initdata s7a_workaround = -1;
+static int __devinitdata s7a_workaround = -1;
 
 
 #if 0
 #if 0
 void pcibios_name_device(struct pci_dev *dev)
 void pcibios_name_device(struct pci_dev *dev)
@@ -60,7 +60,7 @@ void pcibios_name_device(struct pci_dev *dev)
 DECLARE_PCI_FIXUP_HEADER(PCI_ANY_ID, PCI_ANY_ID, pcibios_name_device);
 DECLARE_PCI_FIXUP_HEADER(PCI_ANY_ID, PCI_ANY_ID, pcibios_name_device);
 #endif
 #endif
 
 
-static void __init check_s7a(void)
+static void __devinit check_s7a(void)
 {
 {
 	struct device_node *root;
 	struct device_node *root;
 	char *model;
 	char *model;