From patchwork Tue Jun 30 06:55:00 2015 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Sreekanth Reddy X-Patchwork-Id: 6694091 Return-Path: X-Original-To: patchwork-linux-scsi@patchwork.kernel.org Delivered-To: patchwork-parsemail@patchwork1.web.kernel.org Received: from mail.kernel.org (mail.kernel.org [198.145.29.136]) by patchwork1.web.kernel.org (Postfix) with ESMTP id 5A0449F3D1 for ; Tue, 30 Jun 2015 07:00:20 +0000 (UTC) Received: from mail.kernel.org (localhost [127.0.0.1]) by mail.kernel.org (Postfix) with ESMTP id 887F9205CA for ; Tue, 30 Jun 2015 07:00:19 +0000 (UTC) Received: from vger.kernel.org (vger.kernel.org [209.132.180.67]) by mail.kernel.org (Postfix) with ESMTP id 9A56720279 for ; Tue, 30 Jun 2015 07:00:18 +0000 (UTC) Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S1753721AbbF3HAR (ORCPT ); Tue, 30 Jun 2015 03:00:17 -0400 Received: from mail-pd0-f182.google.com ([209.85.192.182]:35928 "EHLO mail-pd0-f182.google.com" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S1752824AbbF3G4Z (ORCPT ); Tue, 30 Jun 2015 02:56:25 -0400 Received: by pdcu2 with SMTP id u2so753620pdc.3 for ; Mon, 29 Jun 2015 23:56:25 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=avagotech.com; s=google; h=from:to:cc:subject:date:message-id:in-reply-to:references; bh=YJY/URiIv+okgYA7Z40ieU8Kky5KMB7b7klORcoN7qw=; b=qpKG4jSQs/Ab4XIFaFf/IiZJ9raCYxWXPOb8P0RpGWYkgKZdYcBocWt2zrEsJMujDj 07fqAj5NxefwkZuVfR3efNJhdxQ7KozeQO0YF4SDnZAEMzm/0bfxIpnsz/cmvneZGGYD 00sSUoln5kHSSn3yLsvAjIoxftIn5lWQ0J1eE= X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20130820; h=x-gm-message-state:from:to:cc:subject:date:message-id:in-reply-to :references; bh=YJY/URiIv+okgYA7Z40ieU8Kky5KMB7b7klORcoN7qw=; b=gqHQMKPfp8upyMfv69aV/gSC+UTBxLLSUIhAgLe45kLjsBd3tFiC8lO+7IXS25uTjK 4wC/tD+93bzz1f5gj4EGdLYAMtY+6mY8RPvxQSQWNFAU4I1KKbnE2DPjYdDygixj44G/ lzWDcS/BP/yN6kW0bDzTQU3vLPEV8yuWSTmkiaDgPm8VyIdIREnFCB8k0t/0nswe1Wtf UusZtRJTFSrv0juQQMFL1ETbaVVRHBXtBGiSwbiW/ZHt/H3J6Ch6yY6qYMtixh1w07lp svpkYBFIkwz3GuMruKXUEdAZnNNCRLNp+YoHMMFyoC5m6INYaKJEjVNm4ecb3zPaP6Xj NlAw== X-Gm-Message-State: ALoCoQkenPCxDqzIqPeINZNzy57jW1eEm4ojaMkJoUYU+InUo3WoA/sH9JZNcKgc0zEe7j7bR0Ul X-Received: by 10.68.229.40 with SMTP id sn8mr39776697pbc.59.1435647385368; Mon, 29 Jun 2015 23:56:25 -0700 (PDT) Received: from host1.lsi.com ([192.19.239.250]) by mx.google.com with ESMTPSA id 1sm935543pds.79.2015.06.29.23.56.21 (version=TLSv1.2 cipher=ECDHE-RSA-AES128-SHA bits=128/128); Mon, 29 Jun 2015 23:56:24 -0700 (PDT) From: Sreekanth Reddy X-Google-Original-From: Sreekanth Reddy To: jejb@kernel.org, hch@infradead.org Cc: martin.petersen@oracle.com, linux-scsi@vger.kernel.org, JBottomley@Parallels.com, Sathya.Prakash@avagotech.com, linux-kernel@vger.kernel.org, jthumshirn@suse.de, Sreekanth Reddy Subject: [PATCH v2 14/20] [SCSI] mpt3sas: Complete the SCSI command with DID_RESET status for log_info value 0x0x32010081 Date: Tue, 30 Jun 2015 12:25:00 +0530 Message-Id: <1435647306-36956-15-git-send-email-Sreekanth.Reddy@avagotech.com> X-Mailer: git-send-email 2.0.2 In-Reply-To: <1435647306-36956-1-git-send-email-Sreekanth.Reddy@avagotech.com> References: <1435647306-36956-1-git-send-email-Sreekanth.Reddy@avagotech.com> Sender: linux-scsi-owner@vger.kernel.org Precedence: bulk List-ID: X-Mailing-List: linux-scsi@vger.kernel.org X-Spam-Status: No, score=-7.4 required=5.0 tests=BAYES_00,DKIM_SIGNED, RCVD_IN_DNSWL_HI,RP_MATCHES_RCVD,T_DKIM_INVALID,UNPARSEABLE_RELAY autolearn=unavailable version=3.3.1 X-Spam-Checker-Version: SpamAssassin 3.3.1 (2010-03-16) on mail.kernel.org X-Virus-Scanned: ClamAV using ClamSMTP 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 Changes in v2: Patch version change only. Signed-off-by: Sreekanth Reddy Reviewed-by: Martin K. Petersen Reviewed-by: Johannes Thumshirn --- 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 4196fbb..3b03639 100644 --- a/drivers/scsi/mpt3sas/mpt3sas_base.h +++ b/drivers/scsi/mpt3sas/mpt3sas_base.h @@ -202,6 +202,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 64dd90b..49c412b 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 == VIRTUAL_IO_FAILED_RETRY) { + scmd->result = DID_RESET << 16; + break; } scmd->result = DID_SOFT_ERROR << 16; break;