Commit dbe7633c authored by Michael Kelley's avatar Michael Kelley Committed by Martin K. Petersen

scsi: storvsc: Log TEST_UNIT_READY errors as warnings

Commit 08f76547 ("scsi: storvsc: Update error logging") added more
robust logging of errors, particularly those reported as Hyper-V
errors. But this change produces extra logging noise in that
TEST_UNIT_READY may report errors during the normal course of detecting
device adds and removes.

Fix this by logging TEST_UNIT_READY errors as warnings, so that log lines
are produced only if the storvsc log level is changed to WARN level on the
kernel boot line.

Link: https://lore.kernel.org/r/1628269970-87876-1-git-send-email-mikelley@microsoft.com
Fixes: 08f76547 ("scsi: storvsc: Update error logging")
Signed-off-by: default avatarMichael Kelley <mikelley@microsoft.com>
Signed-off-by: default avatarMartin K. Petersen <martin.petersen@oracle.com>
parent 9977d880
...@@ -1199,14 +1199,24 @@ static void storvsc_on_io_completion(struct storvsc_device *stor_device, ...@@ -1199,14 +1199,24 @@ static void storvsc_on_io_completion(struct storvsc_device *stor_device,
vstor_packet->vm_srb.sense_info_length); vstor_packet->vm_srb.sense_info_length);
if (vstor_packet->vm_srb.scsi_status != 0 || if (vstor_packet->vm_srb.scsi_status != 0 ||
vstor_packet->vm_srb.srb_status != SRB_STATUS_SUCCESS) vstor_packet->vm_srb.srb_status != SRB_STATUS_SUCCESS) {
storvsc_log(device, STORVSC_LOGGING_ERROR,
/*
* Log TEST_UNIT_READY errors only as warnings. Hyper-V can
* return errors when detecting devices using TEST_UNIT_READY,
* and logging these as errors produces unhelpful noise.
*/
int loglevel = (stor_pkt->vm_srb.cdb[0] == TEST_UNIT_READY) ?
STORVSC_LOGGING_WARN : STORVSC_LOGGING_ERROR;
storvsc_log(device, loglevel,
"tag#%d cmd 0x%x status: scsi 0x%x srb 0x%x hv 0x%x\n", "tag#%d cmd 0x%x status: scsi 0x%x srb 0x%x hv 0x%x\n",
request->cmd->request->tag, request->cmd->request->tag,
stor_pkt->vm_srb.cdb[0], stor_pkt->vm_srb.cdb[0],
vstor_packet->vm_srb.scsi_status, vstor_packet->vm_srb.scsi_status,
vstor_packet->vm_srb.srb_status, vstor_packet->vm_srb.srb_status,
vstor_packet->status); vstor_packet->status);
}
if (vstor_packet->vm_srb.scsi_status == SAM_STAT_CHECK_CONDITION && if (vstor_packet->vm_srb.scsi_status == SAM_STAT_CHECK_CONDITION &&
(vstor_packet->vm_srb.srb_status & SRB_STATUS_AUTOSENSE_VALID)) (vstor_packet->vm_srb.srb_status & SRB_STATUS_AUTOSENSE_VALID))
......
Markdown is supported
0%
or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment