[PATCH] ppc64: Fix PCI hotplug
Anton Blanchard
anton at samba.org
Fri Oct 7 00:16:14 EST 2005
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 at samba.org>
---
Index: gr_work/arch/ppc64/kernel/pSeries_pci.c
===================================================================
--- gr_work.orig/arch/ppc64/kernel/pSeries_pci.c 2005-10-06 07:09:17.344243988 -0500
+++ gr_work/arch/ppc64/kernel/pSeries_pci.c 2005-10-06 07:09:40.018114696 -0500
@@ -32,7 +32,7 @@
#include "pci.h"
-static int __initdata s7a_workaround = -1;
+static int __devinitdata s7a_workaround = -1;
#if 0
void pcibios_name_device(struct pci_dev *dev)
@@ -60,7 +60,7 @@
DECLARE_PCI_FIXUP_HEADER(PCI_ANY_ID, PCI_ANY_ID, pcibios_name_device);
#endif
-static void __init check_s7a(void)
+static void __devinit check_s7a(void)
{
struct device_node *root;
char *model;
More information about the Linuxppc64-dev
mailing list