diff options
author | mav <mav@FreeBSD.org> | 2015-11-27 14:29:04 +0000 |
---|---|---|
committer | mav <mav@FreeBSD.org> | 2015-11-27 14:29:04 +0000 |
commit | e2706f2c8a1cf869b153216bc0bd7aae63861c4d (patch) | |
tree | ea40c1a007908c0f0f263127d9d74a911819024c /sys/cam/ctl/ctl.c | |
parent | bf3e2cf8b5aa2e16e9906989d568a7f579250b1d (diff) | |
download | FreeBSD-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.c | 2 |
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], |