diff options
author | sanpei <sanpei@FreeBSD.org> | 2000-10-01 12:36:14 +0000 |
---|---|---|
committer | sanpei <sanpei@FreeBSD.org> | 2000-10-01 12:36:14 +0000 |
commit | 451ab629216e4ee9155a4ae865cbcb77daaf1f67 (patch) | |
tree | fe16e2159ff127d6bf8d07c5b3c7e8e34059685f /usr.sbin | |
parent | 0d0ba5ba00d6c818730953c2d899eccfd95f3d82 (diff) | |
download | FreeBSD-src-451ab629216e4ee9155a4ae865cbcb77daaf1f67.zip FreeBSD-src-451ab629216e4ee9155a4ae865cbcb77daaf1f67.tar.gz |
fix some minor problem in PIOCSRESOURCE ioctl.
- If resource which was allocated for pcic was
requested via this ioctl, bus_alloc_resource
would be succeeded and that resource was
returned as free resource. So check whether
requested resource was used for pcic or not
before bus_alloc_resource test.
- merge SYS_RES_IRQ routine into other SYS_RES_*
routine and clean up.
problem reported by: Yohei Terada <terada@jiro.c.u-tokyo.ac.jp>
Diffstat (limited to 'usr.sbin')
-rw-r--r-- | usr.sbin/pccard/pccardd/cardd.c | 4 |
1 files changed, 2 insertions, 2 deletions
diff --git a/usr.sbin/pccard/pccardd/cardd.c b/usr.sbin/pccard/pccardd/cardd.c index 5d4f4e3..881cfe1 100644 --- a/usr.sbin/pccard/pccardd/cardd.c +++ b/usr.sbin/pccard/pccardd/cardd.c @@ -544,7 +544,7 @@ assign_card_index(struct cis * cis) for (cio = cp->io; cio; cio = cio->next) { resource.size = cio->size; resource.min = cio->addr; - resource.max = resource.min + cio->size; + resource.max = resource.min + cio->size - 1; if (ioctl(fd, PIOCSRESOURCE, &resource) < 0) { perror("ioctl (PIOCSRESOURCE)"); exit(1); @@ -697,7 +697,7 @@ assign_io(struct slot *sp) j = bit_fns(io_avail, IOPORTS, i, sio->size, sio->size); res.min = j; - res.max = j + sio->size ; + res.max = j + sio->size - 1; if (ioctl(fd, PIOCSRESOURCE, &res) < 0) { perror("ioctl (PIOCSRESOURCE)"); exit(1); |