summaryrefslogtreecommitdiffstats
path: root/sys/pc98/cbus/sio.c
diff options
context:
space:
mode:
authorkato <kato@FreeBSD.org>2000-01-29 04:47:22 +0000
committerkato <kato@FreeBSD.org>2000-01-29 04:47:22 +0000
commitdebd5713de7e2f45e53fb553c5c1fe21d5306561 (patch)
treeb496bd66a9ee89f31a682c59d039815b2eaf41bd /sys/pc98/cbus/sio.c
parent9af864f09a4c885de02492adc44cc74b37652846 (diff)
downloadFreeBSD-src-debd5713de7e2f45e53fb553c5c1fe21d5306561.zip
FreeBSD-src-debd5713de7e2f45e53fb553c5c1fe21d5306561.tar.gz
Synced with sys/isa/sio.c rev 1.287.
Diffstat (limited to 'sys/pc98/cbus/sio.c')
-rw-r--r--sys/pc98/cbus/sio.c9
1 files changed, 8 insertions, 1 deletions
diff --git a/sys/pc98/cbus/sio.c b/sys/pc98/cbus/sio.c
index 0c3b62b..f9256e6 100644
--- a/sys/pc98/cbus/sio.c
+++ b/sys/pc98/cbus/sio.c
@@ -1128,6 +1128,7 @@ sioprobe(dev)
if (COM_LLCONSOLE(flags)) {
printf("sio%d: reserved for low-level i/o\n",
device_get_unit(dev));
+ bus_release_resource(dev, SYS_RES_IOPORT, rid, port);
return (ENXIO);
}
@@ -1739,7 +1740,13 @@ sioattach(dev)
if (siosetwater(com, com->it_in.c_ispeed) != 0) {
enable_intr();
free(com, M_DEVBUF);
- return ENXIO;
+ /*
+ * Leave i/o resources allocated if this is a `cn'-level
+ * console, so that other devices can't snarf them.
+ */
+ if (iobase != siocniobase)
+ bus_release_resource(dev, SYS_RES_IOPORT, rid, port);
+ return (ENOMEM);
}
enable_intr();
termioschars(&com->it_in);
OpenPOWER on IntegriCloud