Must not go beyond end of driver's probe list.
authorMichael Brown <mcb30@etherboot.org>
Fri, 22 Apr 2005 12:02:34 +0000 (12:02 +0000)
committerMichael Brown <mcb30@etherboot.org>
Fri, 22 Apr 2005 12:02:34 +0000 (12:02 +0000)
src/drivers/bus/isa.c

index 9c5b4ef..95701c3 100644 (file)
@@ -100,8 +100,11 @@ int isa_check_driver ( struct bus_dev *bus_dev,
        /* If ioaddr is zero, it means we're using a driver-specified
         * ioaddr
         */
        /* If ioaddr is zero, it means we're using a driver-specified
         * ioaddr
         */
-       if ( ! isa->ioaddr )
+       if ( ! isa->ioaddr ) {
+               if ( isa->driver_probe_idx >= driver->addr_count )
+                       return 0;
                isa->ioaddr = driver->probe_addrs[isa->driver_probe_idx];
                isa->ioaddr = driver->probe_addrs[isa->driver_probe_idx];
+       }
 
        /* Use probe_addr method to see if there's a device
         * present at this address.
 
        /* Use probe_addr method to see if there's a device
         * present at this address.