Message ID | 1513107610-24451-1-git-send-email-prasad.munirathnam@microsemi.com (mailing list archive) |
---|---|
State | Accepted |
Headers | show |
> -----Original Message----- > From: Prasad B Munirathnam [mailto:prasad.munirathnam@microsemi.com] > Sent: Tuesday, December 12, 2017 11:40 AM > To: Prasad Munirathnam <Prasad.Munirathnam@microsemi.com>; Dave > Carroll <david.carroll@microsemi.com>; Raghava Aditya Renukunta > <RaghavaAditya.Renukunta@microsemi.com>; > martin.petersen@oracle.com; james.bottomley@hansenpartnership.com > Cc: linux-scsi@vger.kernel.org > Subject: [PATCH] scsi: aacraid: fix io drop during the reset > > "FIB_CONTEXT_FLAG_TIMEDOUT" flag is set in aac_eh_abort to > indicate command timeout, using the same flag in reset handler > causes the command to timeout and the IO's were droped. > > defined a new flag "FIB_CONTEXT_FLAG_EH_RESET" to make sure IO > is properly handled in eh_reset handler. > > Signed-off-by: Prasad B Munirathnam > <prasad.munirathnam@microsemi.com> > --- Reviewed-by :Raghava Aditya Renukunta <RaghavaAditya.Renukunta@microsemi.com>
Prasad, > "FIB_CONTEXT_FLAG_TIMEDOUT" flag is set in aac_eh_abort to > indicate command timeout, using the same flag in reset handler > causes the command to timeout and the IO's were droped. Applied to 4.15/scsi-fixes. Thank you!
diff --git a/drivers/scsi/aacraid/aacraid.h b/drivers/scsi/aacraid/aacraid.h index 403a639..b0b290f 100644 --- a/drivers/scsi/aacraid/aacraid.h +++ b/drivers/scsi/aacraid/aacraid.h @@ -1724,6 +1724,7 @@ struct aac_dev #define FIB_CONTEXT_FLAG_NATIVE_HBA (0x00000010) #define FIB_CONTEXT_FLAG_NATIVE_HBA_TMF (0x00000020) #define FIB_CONTEXT_FLAG_SCSI_CMD (0x00000040) +#define FIB_CONTEXT_FLAG_EH_RESET (0x00000080) /* * Define the command values diff --git a/drivers/scsi/aacraid/linit.c b/drivers/scsi/aacraid/linit.c index 3677bef..03af5bd 100644 --- a/drivers/scsi/aacraid/linit.c +++ b/drivers/scsi/aacraid/linit.c @@ -1034,7 +1034,7 @@ static int aac_eh_bus_reset(struct scsi_cmnd* cmd) info = &aac->hba_map[bus][cid]; if (bus >= AAC_MAX_BUSES || cid >= AAC_MAX_TARGETS || info->devtype != AAC_DEVTYPE_NATIVE_RAW) { - fib->flags |= FIB_CONTEXT_FLAG_TIMED_OUT; + fib->flags |= FIB_CONTEXT_FLAG_EH_RESET; cmd->SCp.phase = AAC_OWNER_ERROR_HANDLER; } }
"FIB_CONTEXT_FLAG_TIMEDOUT" flag is set in aac_eh_abort to indicate command timeout, using the same flag in reset handler causes the command to timeout and the IO's were droped. defined a new flag "FIB_CONTEXT_FLAG_EH_RESET" to make sure IO is properly handled in eh_reset handler. Signed-off-by: Prasad B Munirathnam <prasad.munirathnam@microsemi.com> --- drivers/scsi/aacraid/aacraid.h | 1 + drivers/scsi/aacraid/linit.c | 2 +- 2 files changed, 2 insertions(+), 1 deletion(-)