Linux kernel mirror (for testing) git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git
kernel os linux

scsi: mpi3mr: Return I/Os to an unrecoverable HBA with DID_ERROR

Complete all new I/O requests issued to an unrecoverable controller with
DID_ERROR status instead of returning the I/O requests with
SCSI_MLQUEUE_HOST_BUSY. This will prevent the infinite retries of the new
I/Os when a controller is in an unrecoverable state.

Link: https://lore.kernel.org/r/20220505184808.24049-1-sreekanth.reddy@broadcom.com
Signed-off-by: Sreekanth Reddy <sreekanth.reddy@broadcom.com>
Signed-off-by: Martin K. Petersen <martin.petersen@oracle.com>

authored by

Sreekanth Reddy and committed by
Martin K. Petersen
256bd4f2 2dd8389f

+6
+6
drivers/scsi/mpi3mr/mpi3mr_os.c
··· 4002 4002 int iprio_class; 4003 4003 u8 is_pcie_dev = 0; 4004 4004 4005 + if (mrioc->unrecoverable) { 4006 + scmd->result = DID_ERROR << 16; 4007 + scsi_done(scmd); 4008 + goto out; 4009 + } 4010 + 4005 4011 sdev_priv_data = scmd->device->hostdata; 4006 4012 if (!sdev_priv_data || !sdev_priv_data->tgt_priv_data) { 4007 4013 scmd->result = DID_NO_CONNECT << 16;