[<prev] [next>] [<thread-prev] [thread-next>] [day] [month] [year] [list]
Message-ID: <20150615100156.GL5660@c203.arch.suse.de>
Date: Mon, 15 Jun 2015 12:01:56 +0200
From: Johannes Thumshirn <jthumshirn@...e.de>
To: Sreekanth Reddy <sreekanth.reddy@...gotech.com>
Cc: jejb@...nel.org, hch@...radead.org, martin.petersen@...cle.com,
linux-scsi@...r.kernel.org, JBottomley@...allels.com,
Sathya.Prakash@...gotech.com, linux-kernel@...r.kernel.org
Subject: Re: [PATCH 14/20] [SCSI] mpt3sas: Complete the SCSI command with
DID_RESET status for log_info value 0x0x32010081
On Fri, Jun 12, 2015 at 03:12:26PM +0530, Sreekanth Reddy wrote:
> For any SCSI command, if the driver receives
> IOC status = SCSI_IOC_TERMINATED and log info = 0x32010081 then
> that command will be completed with DID_RESET host status.
>
> The definition of this log info value is
> "Virtual IO has failed and has to be retried".
>
> Firmware will provide this log info value with IOC Status
> "SCSI_IOC_TERMINATED", whenever a drive (with is a part of a volume)
> is pulled and pushed back within some minimal delay.
> With this log info value, firmware informs the driver to retry the
> failed IO command infinite times, so to provide some time for the
> firmware to discover the reinserted drive successfully instated of
> just retrying failed command for five times(doesn't giving enough
> time for firmware to complete the drive discovery) and failing the
> IO permanently even though drive came back successfully.
>
> Signed-off-by: Sreekanth Reddy <Sreekanth.Reddy@...gotech.com>
> ---
> drivers/scsi/mpt3sas/mpt3sas_scsih.c | 3 +++
> 1 file changed, 3 insertions(+)
>
> diff --git a/drivers/scsi/mpt3sas/mpt3sas_scsih.c b/drivers/scsi/mpt3sas/mpt3sas_scsih.c
> index 64dd90b..837c22a 100644
> --- a/drivers/scsi/mpt3sas/mpt3sas_scsih.c
> +++ b/drivers/scsi/mpt3sas/mpt3sas_scsih.c
> @@ -4241,6 +4241,9 @@ _scsih_io_done(struct MPT3SAS_ADAPTER *ioc, u16 smid, u8 msix_index, u32 reply)
> scmd->device->expecting_cc_ua = 1;
> }
> break;
> + } else if (log_info == 0x32010081) {
> + scmd->result = DID_RESET << 16;
> + break;
Could you make that a #define instead of some magic vlaue, so everyone can see
what is happening when reading the source?
> }
> scmd->result = DID_SOFT_ERROR << 16;
> break;
> --
> 2.0.2
>
> --
> To unsubscribe from this list: send the line "unsubscribe linux-scsi" in
> the body of a message to majordomo@...r.kernel.org
> More majordomo info at http://vger.kernel.org/majordomo-info.html
--
Johannes Thumshirn Storage
jthumshirn@...e.de +49 911 74053 689
SUSE LINUX GmbH, Maxfeldstr. 5, 90409 Nürnberg
GF: F. Imendörffer, J. Smithard, J. Guild, D. Upmanyu, G. Norton
HRB 21284 (AG Nürnberg)
--
To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
the body of a message to majordomo@...r.kernel.org
More majordomo info at http://vger.kernel.org/majordomo-info.html
Please read the FAQ at http://www.tux.org/lkml/
Powered by blists - more mailing lists