My joystick stopped working at 2.4.0-test10 due to a patch to
drivers/char/joystick/ns558.c that moves pci probing ahead of
isa probing.

The problem is that pci_module_init can return -ENODEV into i,
which is then used to index the ISA portlist.  ISA probing assumes
that i is initialized to zero.

Trivial fix attached, with plenty of context.

                -- Pete

--- drivers/char/joystick/ns558.c.orig  Mon Nov 13 18:04:16 2000
+++ drivers/char/joystick/ns558.c       Mon Nov 13 18:11:41 2000
@@ -299,37 +299,38 @@
 deactivate:
        if (dev->deactivate)
                dev->deactivate(dev);
        return next;
 }
 #endif
 
 int __init ns558_init(void)
 {
-       int i = 0;
+       int i;
 #ifdef NSS558_ISAPNP
        struct pci_dev *dev = NULL;
        struct pnp_devid *devid;
 #endif
 
 /*
  * Probe for PCI ports.  Always probe for PCI first,
  * it is the least-invasive probe.
  */
 
        i = pci_module_init(&ns558_pci_driver);
        if (i == 0)
                have_pci_devices = 1;
 
 /*
  * Probe for ISA ports.
  */
 
+       i = 0;
        while (ns558_isa_portlist[i]) 
                ns558 = ns558_isa_probe(ns558_isa_portlist[i++], ns558);
 
 /*
  * Probe for PnP ports.
  */
 
 #ifdef NSS558_ISAPNP
        for (devid = pnp_devids; devid->vendor; devid++) {
-
To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
the body of a message to [EMAIL PROTECTED]
Please read the FAQ at http://www.tux.org/lkml/

Reply via email to