aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorPeter Eriksson <pen@lysator.liu.se>2024-10-14 04:01:33 +0000
committerWarner Losh <imp@FreeBSD.org>2024-10-14 05:22:19 +0000
commitcafc839393db5c5d8000fd086118b3c7b47e95c2 (patch)
tree8b071b26f9c08a9530a2ed2a3bf291edd391df3f
parentf03e1a42e92eff76dcf474655b600db37b04ae2b (diff)
ciss: Ignore data over/under run on RECEIVE_DIAGNOSTIC
This appears to be harmless, so ignore data over/under run on diagnostics. PR: 246279 Reviewed by: imp Tested by: Marek Zarychta Differential Revision: https://reviews.freebsd.org/D25155
-rw-r--r--sys/dev/ciss/ciss.c3
1 files changed, 2 insertions, 1 deletions
diff --git a/sys/dev/ciss/ciss.c b/sys/dev/ciss/ciss.c
index 6723d05e0cfe..866e67766818 100644
--- a/sys/dev/ciss/ciss.c
+++ b/sys/dev/ciss/ciss.c
@@ -2299,13 +2299,14 @@ _ciss_report_request(struct ciss_request *cr, int *command_status, int *scsi_sta
/*
* We don't consider data under/overrun an error for the Report
- * Logical/Physical LUNs commands.
+ * Logical/Physical LUNs, INQUIRY & RECEIVE_DIAGNOSTIC 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] == RECEIVE_DIAGNOSTIC) ||
(cc->cdb.cdb[0] == INQUIRY))) {
cc->header.host_tag &= ~CISS_HDR_HOST_TAG_ERROR;
debug(2, "ignoring irrelevant under/overrun error");