This should fix the problem... The multi-bus probe logic error handling was
botched.
diff -Nru a/drivers/net/hp100.c b/drivers/net/hp100.c
--- a/drivers/net/hp100.c Wed Feb 18 12:39:41 2004
+++ b/drivers/net/hp100.c Wed Feb 18 12:39:41 2004
@@ -3043,14 +3043,27 @@
int err;
err = hp100_isa_init();
-
+ if (err && err != -ENODEV)
+ goto out;
#ifdef CONFIG_EISA
- err |= eisa_driver_register(&hp100_eisa_driver);
+ err = eisa_driver_register(&hp100_eisa_driver);
+ if (err && err != -ENODEV)
+ goto out2;
#endif
#ifdef CONFIG_PCI
- err |= pci_module_init(&hp100_pci_driver);
+ err = pci_module_init(&hp100_pci_driver);
+ if (err && err != -ENODEV)
+ goto out3;
#endif
+ out:
return err;
+ out3:
+#ifdef CONFIG_EISA
+ eisa_driver_unregister (&hp100_eisa_driver);
+ out2:
+#endif
+ hp100_isa_cleanup();
+ goto out;
}