summaryrefslogtreecommitdiff
path: root/sys/dev
diff options
context:
space:
mode:
authorBjoern A. Zeeb <bz@FreeBSD.org>2008-04-20 17:45:32 +0000
committerBjoern A. Zeeb <bz@FreeBSD.org>2008-04-20 17:45:32 +0000
commit95b02815da7be3a9adaac7a6f089140cac5c782d (patch)
tree9e52d23618deed966ecaed66a383a8e8cd6ed566 /sys/dev
parentabf7be003d07779b5fbbf3a610946dc6e8648794 (diff)
Notes
Diffstat (limited to 'sys/dev')
-rw-r--r--sys/dev/ata/ata-all.c9
1 files changed, 5 insertions, 4 deletions
diff --git a/sys/dev/ata/ata-all.c b/sys/dev/ata/ata-all.c
index 597bb3818b57..83da7ff8bfd9 100644
--- a/sys/dev/ata/ata-all.c
+++ b/sys/dev/ata/ata-all.c
@@ -366,12 +366,13 @@ ata_ioctl(struct cdev *dev, u_long cmd, caddr_t data,
switch (cmd) {
case IOCATAGMAXCHANNEL:
+ /* In case we have channel 0..n this will return n+1. */
*value = devclass_get_maxunit(ata_devclass);
error = 0;
break;
case IOCATAREINIT:
- if (*value > devclass_get_maxunit(ata_devclass) ||
+ if (*value >= devclass_get_maxunit(ata_devclass) ||
!(device = devclass_get_device(ata_devclass, *value)))
return ENXIO;
error = ata_reinit(device);
@@ -379,7 +380,7 @@ ata_ioctl(struct cdev *dev, u_long cmd, caddr_t data,
break;
case IOCATAATTACH:
- if (*value > devclass_get_maxunit(ata_devclass) ||
+ if (*value >= devclass_get_maxunit(ata_devclass) ||
!(device = devclass_get_device(ata_devclass, *value)))
return ENXIO;
/* XXX SOS should enable channel HW on controller */
@@ -387,7 +388,7 @@ ata_ioctl(struct cdev *dev, u_long cmd, caddr_t data,
break;
case IOCATADETACH:
- if (*value > devclass_get_maxunit(ata_devclass) ||
+ if (*value >= devclass_get_maxunit(ata_devclass) ||
!(device = devclass_get_device(ata_devclass, *value)))
return ENXIO;
error = ata_detach(device);
@@ -395,7 +396,7 @@ ata_ioctl(struct cdev *dev, u_long cmd, caddr_t data,
break;
case IOCATADEVICES:
- if (devices->channel > devclass_get_maxunit(ata_devclass) ||
+ if (devices->channel >= devclass_get_maxunit(ata_devclass) ||
!(device = devclass_get_device(ata_devclass, devices->channel)))
return ENXIO;
bzero(devices->name[0], 32);