Donate to e Foundation | Murena handsets with /e/OS | Own a part of Murena! Learn more

Commit 8dd779b1 authored by Robert Richter's avatar Robert Richter Committed by Ingo Molnar
Browse files

x86/pci: removing subsys_initcall ordering dependencies



So far subsys_initcalls has been executed in this order depending on
the object order in the Makefile:

arch/x86/pci/visws.c:subsys_initcall(pcibios_init);
arch/x86/pci/numa.c:subsys_initcall(pci_numa_init);
arch/x86/pci/acpi.c:subsys_initcall(pci_acpi_init);
arch/x86/pci/legacy.c:subsys_initcall(pci_legacy_init);
arch/x86/pci/irq.c:subsys_initcall(pcibios_irq_init);
arch/x86/pci/common.c:subsys_initcall(pcibios_init);

This patch removes the ordering dependency. There is now only one
subsys_initcall function that contains subsystem initialization code
with a defined order.

Signed-off-by: default avatarRobert Richter <robert.richter@amd.com>
Acked-by: default avatarJesse Barnes <jbarnes@virtuousgeek.org>
Signed-off-by: default avatarIngo Molnar <mingo@elte.hu>
parent ae28d705
Loading
Loading
Loading
Loading
+0 −4
Original line number Diff line number Diff line
@@ -6,10 +6,6 @@ obj-$(CONFIG_PCI_DIRECT) += direct.o
obj-$(CONFIG_PCI_OLPC)		+= olpc.o

pci-y				:= fixup.o

# Do not change the ordering here. There is a nasty init function
# ordering dependency which breaks when you move acpi.o below
# legacy/irq.o
pci-$(CONFIG_ACPI)		+= acpi.o
pci-y				+= legacy.o irq.o

+1 −2
Original line number Diff line number Diff line
@@ -223,7 +223,7 @@ struct pci_bus * __devinit pci_acpi_scan_root(struct acpi_device *device, int do
	return bus;
}

static int __init pci_acpi_init(void)
int __init pci_acpi_init(void)
{
	struct pci_dev *dev = NULL;

@@ -257,4 +257,3 @@ static int __init pci_acpi_init(void)

	return 0;
}
subsys_initcall(pci_acpi_init);
+1 −3
Original line number Diff line number Diff line
@@ -384,7 +384,7 @@ struct pci_bus * __devinit pcibios_scan_root(int busnum)

extern u8 pci_cache_line_size;

static int __init pcibios_init(void)
int __init pcibios_init(void)
{
	struct cpuinfo_x86 *c = &boot_cpu_data;

@@ -411,8 +411,6 @@ static int __init pcibios_init(void)
	return 0;
}

subsys_initcall(pcibios_init);

char * __devinit  pcibios_setup(char *str)
{
	if (!strcmp(str, "off")) {
+2 −2
Original line number Diff line number Diff line
@@ -4,7 +4,7 @@

/* arch_initcall has too random ordering, so call the initializers
   in the right sequence from here. */
static __init int pci_access_init(void)
static __init int pci_arch_init(void)
{
#ifdef CONFIG_PCI_DIRECT
	int type = 0;
@@ -40,4 +40,4 @@ static __init int pci_access_init(void)

	return 0;
}
arch_initcall(pci_access_init);
arch_initcall(pci_arch_init);
+1 −4
Original line number Diff line number Diff line
@@ -1107,7 +1107,7 @@ static struct dmi_system_id __initdata pciirq_dmi_table[] = {
	{ }
};

static int __init pcibios_irq_init(void)
int __init pcibios_irq_init(void)
{
	DBG(KERN_DEBUG "PCI: IRQ init\n");

@@ -1142,9 +1142,6 @@ static int __init pcibios_irq_init(void)
	return 0;
}

subsys_initcall(pcibios_irq_init);


static void pirq_penalize_isa_irq(int irq, int active)
{
	/*
Loading