aboutsummaryrefslogtreecommitdiff
path: root/sys/pc98/cbus
diff options
context:
space:
mode:
authorKATO Takenori <kato@FreeBSD.org>2000-01-29 04:47:22 +0000
committerKATO Takenori <kato@FreeBSD.org>2000-01-29 04:47:22 +0000
commit6dbccd6e0043ce3f560fc616eec6b8243bb4e4df (patch)
treecea3150312c05995e74867d0806d73911518bb61 /sys/pc98/cbus
parentc95e192ba77fb69554ffcdd343adbd2941b825cd (diff)
downloadsrc-6dbccd6e0043ce3f560fc616eec6b8243bb4e4df.tar.gz
src-6dbccd6e0043ce3f560fc616eec6b8243bb4e4df.zip
Synced with sys/isa/sio.c rev 1.287.
Notes
Notes: svn path=/head/; revision=56793
Diffstat (limited to 'sys/pc98/cbus')
-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 0c3b62bbe248..f9256e6e1e64 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);