summaryrefslogtreecommitdiffstats
path: root/sys/cam/ctl/ctl.c
diff options
context:
space:
mode:
authormav <mav@FreeBSD.org>2015-11-27 14:29:04 +0000
committermav <mav@FreeBSD.org>2015-11-27 14:29:04 +0000
commite2706f2c8a1cf869b153216bc0bd7aae63861c4d (patch)
treeea40c1a007908c0f0f263127d9d74a911819024c /sys/cam/ctl/ctl.c
parentbf3e2cf8b5aa2e16e9906989d568a7f579250b1d (diff)
downloadFreeBSD-src-e2706f2c8a1cf869b153216bc0bd7aae63861c4d.zip
FreeBSD-src-e2706f2c8a1cf869b153216bc0bd7aae63861c4d.tar.gz
Fix panic when trying to sort unsupported command in OOA queue.
Handle unsupported commands as not conflicting/blocking.
Diffstat (limited to 'sys/cam/ctl/ctl.c')
-rw-r--r--sys/cam/ctl/ctl.c2
1 files changed, 2 insertions, 0 deletions
diff --git a/sys/cam/ctl/ctl.c b/sys/cam/ctl/ctl.c
index 084645ec..d21bd5a 100644
--- a/sys/cam/ctl/ctl.c
+++ b/sys/cam/ctl/ctl.c
@@ -11091,6 +11091,8 @@ ctl_check_for_blockage(struct ctl_lun *lun, union ctl_io *pending_io,
__func__, pending_entry->seridx, pending_io->scsiio.cdb[0],
pending_io->scsiio.cdb[1], pending_io));
ooa_entry = ctl_get_cmd_entry(&ooa_io->scsiio, NULL);
+ if (ooa_entry->seridx == CTL_SERIDX_INVLD)
+ return (CTL_ACTION_PASS); /* Unsupported command in OOA queue */
KASSERT(ooa_entry->seridx < CTL_SERIDX_COUNT,
("%s: Invalid seridx %d for ooa CDB %02x %02x @ %p",
__func__, ooa_entry->seridx, ooa_io->scsiio.cdb[0],
OpenPOWER on IntegriCloud