summaryrefslogtreecommitdiffstats
path: root/sys/dev/ciss/ciss.c
diff options
context:
space:
mode:
authorps <ps@FreeBSD.org>2005-12-16 06:50:55 +0000
committerps <ps@FreeBSD.org>2005-12-16 06:50:55 +0000
commit56b29d3d8597bb042c0ecd3d061633c237c3ccdc (patch)
treee862bd3e4573b922157e5b33affee383247d7055 /sys/dev/ciss/ciss.c
parent0b75b9ba210c84127ae327e750df88d196e7b53a (diff)
downloadFreeBSD-src-56b29d3d8597bb042c0ecd3d061633c237c3ccdc.zip
FreeBSD-src-56b29d3d8597bb042c0ecd3d061633c237c3ccdc.tar.gz
It seems ciss should ignore overrun and underrun on a SCSI INQUIRY
command. This fixes some weird booting issues on newer versions of the firmware on the MSA20. Reported by: Philippe Pegon <Philippe dot Pegon at crc dot u-strasbg dot fr>
Diffstat (limited to 'sys/dev/ciss/ciss.c')
-rw-r--r--sys/dev/ciss/ciss.c5
1 files changed, 4 insertions, 1 deletions
diff --git a/sys/dev/ciss/ciss.c b/sys/dev/ciss/ciss.c
index 1b8c494..f062377 100644
--- a/sys/dev/ciss/ciss.c
+++ b/sys/dev/ciss/ciss.c
@@ -1933,8 +1933,11 @@ ciss_report_request(struct ciss_request *cr, int *command_status, int *scsi_stat
* Logical/Physical LUNs commands.
*/
if ((cc->header.host_tag & CISS_HDR_HOST_TAG_ERROR) &&
+ ((ce->command_status == CISS_CMD_STATUS_DATA_OVERRUN) ||
+ (ce->command_status == CISS_CMD_STATUS_DATA_UNDERRUN)) &&
((cc->cdb.cdb[0] == CISS_OPCODE_REPORT_LOGICAL_LUNS) ||
- (cc->cdb.cdb[0] == CISS_OPCODE_REPORT_PHYSICAL_LUNS))) {
+ (cc->cdb.cdb[0] == CISS_OPCODE_REPORT_PHYSICAL_LUNS) ||
+ (cc->cdb.cdb[0] == INQUIRY))) {
cc->header.host_tag &= ~CISS_HDR_HOST_TAG_ERROR;
debug(2, "ignoring irrelevant under/overrun error");
}
OpenPOWER on IntegriCloud