ns558 pci/isa change

From: Pete Wyckoff (pw@osc.edu)
Date: Mon Nov 13 2000 - 18:15:30 EST


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 majordomo@vger.kernel.org
Please read the FAQ at http://www.tux.org/lkml/



This archive was generated by hypermail 2b29 : Wed Nov 15 2000 - 21:00:24 EST