forked from Minki/linux
scsi: aacraid: Fix I/O drop during 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 time out and the I/Os were dropped. Define a new flag "FIB_CONTEXT_FLAG_EH_RESET" to make sure I/O is properly handled in eh_reset handler. [mkp: tweaked commit message] Signed-off-by: Prasad B Munirathnam <prasad.munirathnam@microsemi.com> Reviewed-by: Raghava Aditya Renukunta <RaghavaAditya.Renukunta@microsemi.com> Signed-off-by: Martin K. Petersen <martin.petersen@oracle.com>
This commit is contained in:
parent
093b8886f4
commit
5771cfffdf
@ -1725,6 +1725,7 @@ struct aac_dev
|
|||||||
#define FIB_CONTEXT_FLAG_NATIVE_HBA (0x00000010)
|
#define FIB_CONTEXT_FLAG_NATIVE_HBA (0x00000010)
|
||||||
#define FIB_CONTEXT_FLAG_NATIVE_HBA_TMF (0x00000020)
|
#define FIB_CONTEXT_FLAG_NATIVE_HBA_TMF (0x00000020)
|
||||||
#define FIB_CONTEXT_FLAG_SCSI_CMD (0x00000040)
|
#define FIB_CONTEXT_FLAG_SCSI_CMD (0x00000040)
|
||||||
|
#define FIB_CONTEXT_FLAG_EH_RESET (0x00000080)
|
||||||
|
|
||||||
/*
|
/*
|
||||||
* Define the command values
|
* Define the command values
|
||||||
|
@ -1037,7 +1037,7 @@ static int aac_eh_bus_reset(struct scsi_cmnd* cmd)
|
|||||||
info = &aac->hba_map[bus][cid];
|
info = &aac->hba_map[bus][cid];
|
||||||
if (bus >= AAC_MAX_BUSES || cid >= AAC_MAX_TARGETS ||
|
if (bus >= AAC_MAX_BUSES || cid >= AAC_MAX_TARGETS ||
|
||||||
info->devtype != AAC_DEVTYPE_NATIVE_RAW) {
|
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;
|
cmd->SCp.phase = AAC_OWNER_ERROR_HANDLER;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
Loading…
Reference in New Issue
Block a user