diff options
author | marius <marius@FreeBSD.org> | 2004-08-25 22:15:33 +0000 |
---|---|---|
committer | marius <marius@FreeBSD.org> | 2004-08-25 22:15:33 +0000 |
commit | b58e118024884c576f6248548397746040bb1227 (patch) | |
tree | 2bd8b54e95d857801553b4d2d037ad6183c44e6e /sys/dev | |
parent | ddecdaa419e11c9796edfada6f09195331064b11 (diff) | |
download | FreeBSD-src-b58e118024884c576f6248548397746040bb1227.zip FreeBSD-src-b58e118024884c576f6248548397746040bb1227.tar.gz |
Don't call uart_bus_probe() for non-matching PnP-devices. Trying to probe
the keyboard controller with uart_bus_probe() caused a hang here on an i386
machine.
Approved by: marcel
Diffstat (limited to 'sys/dev')
-rw-r--r-- | sys/dev/uart/uart_bus_isa.c | 7 |
1 files changed, 3 insertions, 4 deletions
diff --git a/sys/dev/uart/uart_bus_isa.c b/sys/dev/uart/uart_bus_isa.c index 72e0549..82dd59a 100644 --- a/sys/dev/uart/uart_bus_isa.c +++ b/sys/dev/uart/uart_bus_isa.c @@ -155,15 +155,14 @@ uart_isa_probe(device_t dev) parent = device_get_parent(dev); sc = device_get_softc(dev); - if (!ISA_PNP_PROBE(parent, dev, isa_ns8250_ids)) { + /* Probe PnP _and_ non-PnP ns8250 here. */ + if (ISA_PNP_PROBE(parent, dev, isa_ns8250_ids) != ENXIO) { sc->sc_class = &uart_ns8250_class; return (uart_bus_probe(dev, 0, 0, 0, 0)); } /* Add checks for non-ns8250 IDs here. */ - - sc->sc_class = &uart_ns8250_class; - return (uart_bus_probe(dev, 0, 0, 0, 0)); + return (ENXIO); } DRIVER_MODULE(uart, isa, uart_isa_driver, uart_devclass, 0, 0); |