summaryrefslogtreecommitdiffstats
path: root/sys/dev/uart
diff options
context:
space:
mode:
authormarius <marius@FreeBSD.org>2004-08-25 22:15:33 +0000
committermarius <marius@FreeBSD.org>2004-08-25 22:15:33 +0000
commitb58e118024884c576f6248548397746040bb1227 (patch)
tree2bd8b54e95d857801553b4d2d037ad6183c44e6e /sys/dev/uart
parentddecdaa419e11c9796edfada6f09195331064b11 (diff)
downloadFreeBSD-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/uart')
-rw-r--r--sys/dev/uart/uart_bus_isa.c7
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);
OpenPOWER on IntegriCloud