Return-Path: Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S1753283AbbFRIgd (ORCPT ); Thu, 18 Jun 2015 04:36:33 -0400 Received: from cantor2.suse.de ([195.135.220.15]:50111 "EHLO mx2.suse.de" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S1752954AbbFRIg0 (ORCPT ); Thu, 18 Jun 2015 04:36:26 -0400 Date: Thu, 18 Jun 2015 10:36:20 +0200 From: Johannes Thumshirn To: Sreekanth Reddy Cc: jejb@kernel.org, hch@infradead.org, martin.petersen@oracle.com, linux-scsi@vger.kernel.org, JBottomley@Parallels.com, Sathya.Prakash@avagotech.com, linux-kernel@vger.kernel.org Subject: Re: [PATCH 14/20 v1] [SCSI] mpt3sas: Complete the SCSI command with DID_RESET status for log_info value 0x0x32010081 Message-ID: <20150618083620.GB12717@c203.arch.suse.de> References: <1434432924-40632-1-git-send-email-Sreekanth.Reddy@avagotech.com> MIME-Version: 1.0 Content-Type: text/plain; charset=iso-8859-1 Content-Disposition: inline Content-Transfer-Encoding: 8bit In-Reply-To: <1434432924-40632-1-git-send-email-Sreekanth.Reddy@avagotech.com> User-Agent: Mutt/1.5.23 (2014-03-12) Sender: linux-kernel-owner@vger.kernel.org List-ID: X-Mailing-List: linux-kernel@vger.kernel.org Content-Length: 2927 Lines: 71 On Tue, Jun 16, 2015 at 11:05:24AM +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. > > Changes in v1: > Defined macro VIRTUAL_IO_FAILED_RETRY for magic a value 0x32010081 > > Signed-off-by: Sreekanth Reddy > --- > drivers/scsi/mpt3sas/mpt3sas_base.h | 2 ++ > drivers/scsi/mpt3sas/mpt3sas_scsih.c | 3 +++ > 2 files changed, 5 insertions(+) > > diff --git a/drivers/scsi/mpt3sas/mpt3sas_base.h b/drivers/scsi/mpt3sas/mpt3sas_base.h > index 0ffe763..f3f79be 100644 > --- a/drivers/scsi/mpt3sas/mpt3sas_base.h > +++ b/drivers/scsi/mpt3sas/mpt3sas_base.h > @@ -203,6 +203,8 @@ > #define MFG10_GF0_SSD_DATA_SCRUB_DISABLE (0x00000008) > #define MFG10_GF0_SINGLE_DRIVE_R0 (0x00000010) > > +#define VIRTUAL_IO_FAILED_RETRY (0x32010081) > + > /* OEM Specific Flags will come from OEM specific header files */ > struct Mpi2ManufacturingPage10_t { > MPI2_CONFIG_PAGE_HEADER Header; /* 00h */ > diff --git a/drivers/scsi/mpt3sas/mpt3sas_scsih.c b/drivers/scsi/mpt3sas/mpt3sas_scsih.c > index 7060c8b..7587f77 100644 > --- a/drivers/scsi/mpt3sas/mpt3sas_scsih.c > +++ b/drivers/scsi/mpt3sas/mpt3sas_scsih.c > @@ -4302,6 +4302,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 == VIRTUAL_IO_FAILED_RETRY) { > + scmd->result = DID_RESET << 16; > + break; > } > scmd->result = DID_SOFT_ERROR << 16; > break; > -- > 2.0.2 > Reviewed-by: Johannes Thumshirn -- Johannes Thumshirn Storage jthumshirn@suse.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@vger.kernel.org More majordomo info at http://vger.kernel.org/majordomo-info.html Please read the FAQ at http://www.tux.org/lkml/