[PATCH] 2.6.0-test8 ISAPNP ne.c initialization

From: M.H.VanLeeuwen
Date: Wed Oct 22 2003 - 23:27:48 EST


Hi,

The level of isapnp_init was moved to after apci sometime ago. Since it is now
after net_dev_init, ISA PNP NICs fail to initialized at boot. This is particularily
problematic for NFS root filesystems like mine, or none modular systems.
I've been patching my kernel since at least 2.5.65 with the attached...

This fix allows ISA PNP NIC cards to work during net_dev_init, and still
leaves isapnp_init after apci_init, though I don't know if it is the right
thing todo, it works for me...

Comments from Alan Cox a long while back:
>We must initialise ACPI before ISAPnP because we need PCI and ACPI to
>know what system resources we must not hit. How about moving the
>net_dev_init to later?

Here is the ordering of initcall from System.map file w/ my changes
on 2.6.0-test8.

c044a700 t __initcall_acpi_pci_link_init
c044a704 t __initcall_acpi_power_init
c044a708 t __initcall_acpi_system_init
c044a70c t __initcall_acpi_event_init
c044a710 t __initcall_acpi_scan_init
c044a714 t __initcall_pnp_init
c044a718 t __initcall_pnp_system_init
c044a71c t __initcall_device_init
c044a720 t __initcall_as_slab_setup
c044a724 t __initcall_deadline_slab_setup
c044a728 t __initcall_input_init
c044a72c t __initcall_i2c_init
c044a730 t __initcall_pci_acpi_init
c044a734 t __initcall_pci_legacy_init
c044a738 t __initcall_pcibios_irq_init
c044a73c t __initcall_pcibios_init
c044a740 t __initcall_isapnp_init
c044a744 t __initcall_chr_dev_init
c044a748 t __initcall_net_dev_init
c044a74c t __initcall_i8259A_init_sysfs
c044a750 t __initcall_init_timer_sysfs
c044a754 t __initcall_time_init_device


I assume System.map is the place to see initcall ordering?

Martin--- linux-2.6.0-test8.virgin/drivers/pnp/isapnp/core.c Sat Sep 27 23:17:52 2003
+++ linux-2.6.0-test8/drivers/pnp/isapnp/core.c Sat Sep 27 23:20:18 2003
@@ -1160,7 +1160,7 @@
return 0;
}

-device_initcall(isapnp_init);
+fs_initcall(isapnp_init);

/* format is: noisapnp */

--- linux-2.6.0-test8.virgin/net/core/dev.c Sat Oct 18 09:36:27 2003
+++ linux-2.6.0-test8/net/core/dev.c Wed Oct 22 23:22:57 2003
@@ -3018,7 +3018,7 @@
return rc;
}

-subsys_initcall(net_dev_init);
+fs_initcall(net_dev_init);

EXPORT_SYMBOL(__dev_get);
EXPORT_SYMBOL(__dev_get_by_flags);