netdev
[Top] [All Lists]

Re: [BUG] 2.6.3 + hp100 -> Oops

To: jt@xxxxxxxxxx
Subject: Re: [BUG] 2.6.3 + hp100 -> Oops
From: Stephen Hemminger <shemminger@xxxxxxxx>
Date: Wed, 18 Feb 2004 12:40:34 -0800
Cc: jt@xxxxxxxxxxxxxxxxxx, Jeff Garzik <jgarzik@xxxxxxxxx>, netdev@xxxxxxxxxxx, Linux kernel mailing list <linux-kernel@xxxxxxxxxxxxxxx>
In-reply-to: <20040218201559.GA31872@bougret.hpl.hp.com>
Organization: Open Source Development Lab
References: <20040218201559.GA31872@bougret.hpl.hp.com>
Sender: netdev-bounce@xxxxxxxxxxx
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;
 }
 
 

<Prev in Thread] Current Thread [Next in Thread>