David Hinds wrote: > > Say the driver is linked into the kernel. Hot plug drivers should not > all complain about not finding their hardware. > That's handled by pci_module_init(), check <linux/pci.h>: if CONFIG_HOTPLUG is enabled, then pci_module_init() never returns with -ENODEV. Which means that eisa cards will never be probed in a hotplug enabled kernel. And loading the current 3c59x.c into a non CONFIG_HOTPLUG non EISA kernel results in a disconnected driver: it's _not_ registered as a pci driver, pci_module_init() calls pci_unregister_driver(). What about the attached patch?
--- 2.4/drivers/net/3c59x.c Wed Feb 14 10:50:50 2001 +++ build-2.4/drivers/net/3c59x.c Wed Feb 14 18:51:55 2001 @@ -2661,13 +2661,16 @@ rc = pci_module_init(&vortex_driver); if (rc < 0) { - rc = vortex_eisa_init(); - if (rc > 0) - vortex_have_eisa = 1; + if (rc != -ENODEV) + return rc; } else { vortex_have_pci = 1; } + if (vortex_eisa_init() > 0) { + vortex_have_eisa = 1; + rc = 0; + } return rc; }