Problem is- the patch- "256bd4f23d9c scsi: mpi3mr: Return I/Os to an unrecoverable HBA with DID_ERROR" is calling "scmd_done(scmd)" directly whereas Ubuntu kernel expects "scmd->scsi_done(scmd)".
So the patch causing issue has to be adjusted for Ubuntu kernel as below [scmd_done(scmd) replaced with scmd->scsi_done(scmd)]:
Michael,
Problem is- the patch- "256bd4f23d9c scsi: mpi3mr: Return I/Os to an unrecoverable HBA with DID_ERROR" is calling "scmd_done(scmd)" directly whereas Ubuntu kernel expects "scmd-> scsi_done( scmd)".
So the patch causing issue has to be adjusted for Ubuntu kernel as below [scmd_done(scmd) replaced with scmd->scsi_ done(scmd) ]:
------- scsi/mpi3mr/ mpi3mr_ os.c | 6 ++++++
drivers/
1 file changed, 6 insertions(+)
diff --git a/drivers/ scsi/mpi3mr/ mpi3mr_ os.c b/drivers/ scsi/mpi3mr/ mpi3mr_ os.c scsi/mpi3mr/ mpi3mr_ os.c scsi/mpi3mr/ mpi3mr_ os.c
index 89a4918..5c57519 100644
--- a/drivers/
+++ b/drivers/
@@ -3996,6 +3996,12 @@ static int mpi3mr_qcmd(struct Scsi_Host *shost,
int iprio_class;
u8 is_pcie_dev = 0;
+ if (mrioc- >unrecoverable) { done(scmd) ; >hostdata; data->tgt_ priv_data) {
+ scmd->result = DID_ERROR << 16;
+ scmd->scsi_
+ goto out;
+ }
+
sdev_priv_data = scmd->device-
if (!sdev_priv_data || !sdev_priv_
scmd->result = DID_NO_CONNECT << 16;
------
Please let me know if it works for you.