From patchwork Mon Feb 6 16:21:44 2017 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Sathya Prakash Veerichetty X-Patchwork-Id: 9558327 Return-Path: Received: from mail.wl.linuxfoundation.org (pdx-wl-mail.web.codeaurora.org [172.30.200.125]) by pdx-korg-patchwork.web.codeaurora.org (Postfix) with ESMTP id 07643602B1 for ; Mon, 6 Feb 2017 16:21:51 +0000 (UTC) Received: from mail.wl.linuxfoundation.org (localhost [127.0.0.1]) by mail.wl.linuxfoundation.org (Postfix) with ESMTP id EE42826D05 for ; Mon, 6 Feb 2017 16:21:50 +0000 (UTC) Received: by mail.wl.linuxfoundation.org (Postfix, from userid 486) id E318E27F82; Mon, 6 Feb 2017 16:21:50 +0000 (UTC) X-Spam-Checker-Version: SpamAssassin 3.3.1 (2010-03-16) on pdx-wl-mail.web.codeaurora.org X-Spam-Level: X-Spam-Status: No, score=-6.5 required=2.0 tests=BAYES_00,DKIM_SIGNED, DKIM_VALID, DKIM_VALID_AU, RCVD_IN_DNSWL_HI, RCVD_IN_SORBS_SPAM autolearn=ham version=3.3.1 Received: from vger.kernel.org (vger.kernel.org [209.132.180.67]) by mail.wl.linuxfoundation.org (Postfix) with ESMTP id 131C826D05 for ; Mon, 6 Feb 2017 16:21:50 +0000 (UTC) Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S1754085AbdBFQVt (ORCPT ); Mon, 6 Feb 2017 11:21:49 -0500 Received: from mail-it0-f50.google.com ([209.85.214.50]:33567 "EHLO mail-it0-f50.google.com" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S1753061AbdBFQVq (ORCPT ); Mon, 6 Feb 2017 11:21:46 -0500 Received: by mail-it0-f50.google.com with SMTP id d9so22099687itc.0 for ; Mon, 06 Feb 2017 08:21:46 -0800 (PST) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=broadcom.com; s=google; h=from:references:in-reply-to:mime-version:thread-index:date :message-id:subject:to:cc; bh=5bxiT8CpJfcpQit6guOkvmOWm8bGjg/3VH/CueRKaf8=; b=cTNBEKNleYThtGRWBdp04T7XLi6mqaKClCvYBX5sX9ifvIMPuS5UvxkdxRp7i+roME jmDln4WJfI/f/d8jRpeY/g7ZntMnZsjIMeBTy4eRPyWWLiO9WoSXOsxWdtx62FJmuZiP rU1ZB2D7n2m58wCEKareLR2drJQYM5cgoKMf8= X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20161025; h=x-gm-message-state:from:references:in-reply-to:mime-version :thread-index:date:message-id:subject:to:cc; bh=5bxiT8CpJfcpQit6guOkvmOWm8bGjg/3VH/CueRKaf8=; b=eMAUCzL0gSAuvxcI3G5mqSewQhhekT2iFCGisHtKjxJnfUN7zgIthS3EfGGuS6RnEy CkPPOiqunGPc51fVqziP4ZsSDjS/NXdPbB2o1UJKa7IONk0He0Nvu3q0c+g5Tw6rELE0 /t22uIoDk5Mzo5B5OsFQMMK89Nn4WZCZlVAFuydxtFTBYwGf8CTAbJfWwsd7HkJ/sG+e UcbkcGXLUUTl6H9/0HCujg36q0naaAqz2/ynQDC5VlisgMfJWsF1KxfjFYouAUWvR4sy 3g3dD9njyb/D6PjwhyeKRk433cJt7xG0BhQeS6jqs1sXuqZSpEkKwFbxBRvA9tBOjeB8 B63w== X-Gm-Message-State: AIkVDXJ++NF1afQRhbKlHpedXNImVK8Oe+T80Hrl2G9V4m4bFQ8AGYReNQ2l4xKul5FPIacAQPH9skO8nMxHX9Dp X-Received: by 10.36.198.133 with SMTP id j127mr8259187itg.72.1486398105865; Mon, 06 Feb 2017 08:21:45 -0800 (PST) From: Sathya Prakash Veerichetty References: <1486322541-8206-1-git-send-email-w@1wt.eu> <1486322541-8206-42-git-send-email-w@1wt.eu> In-Reply-To: <1486322541-8206-42-git-send-email-w@1wt.eu> MIME-Version: 1.0 X-Mailer: Microsoft Outlook 14.0 Thread-Index: AQHaMD/0bYFznmTj04FORKMaJSOKfgF4dZntoUEF3EA= Date: Mon, 6 Feb 2017 09:21:44 -0700 Message-ID: Subject: RE: [PATCH 3.10 141/319] scsi: mpt3sas: Fix secure erase premature termination To: Willy Tarreau , linux-kernel@vger.kernel.org, stable@vger.kernel.org, linux@roeck-us.net Cc: Andrey Grodzovsky , linux-scsi@vger.kernel.org, Chaitra Basappa , Suganath Prabu Subramani , Sreekanth Reddy , Hannes Reinecke , "Martin K . Petersen" Sender: linux-scsi-owner@vger.kernel.org Precedence: bulk List-ID: X-Mailing-List: linux-scsi@vger.kernel.org X-Virus-Scanned: ClamAV using ClamSMTP Willy, I think this patch had a problem and later modified to a different blocking mechanism. Could you please pull in the latest change for this? Thanks Sathya -----Original Message----- From: Willy Tarreau [mailto:w@1wt.eu] Sent: Sunday, February 05, 2017 12:19 PM To: linux-kernel@vger.kernel.org; stable@vger.kernel.org; linux@roeck-us.net Cc: Andrey Grodzovsky; linux-scsi@vger.kernel.org; Sathya Prakash; Chaitra P B; Suganath Prabu Subramani; Sreekanth Reddy; Hannes Reinecke; Martin K . Petersen; Willy Tarreau Subject: [PATCH 3.10 141/319] scsi: mpt3sas: Fix secure erase premature termination From: Andrey Grodzovsky commit 18f6084a989ba1b38702f9af37a2e4049a924be6 upstream. This is a work around for a bug with LSI Fusion MPT SAS2 when perfoming secure erase. Due to the very long time the operation takes, commands issued during the erase will time out and will trigger execution of the abort hook. Even though the abort hook is called for the specific command which timed out, this leads to entire device halt (scsi_state terminated) and premature termination of the secure erase. Set device state to busy while ATA passthrough commands are in progress. [mkp: hand applied to 4.9/scsi-fixes, tweaked patch description] Signed-off-by: Andrey Grodzovsky Acked-by: Sreekanth Reddy Cc: Cc: Sathya Prakash Cc: Chaitra P B Cc: Suganath Prabu Subramani Cc: Sreekanth Reddy Cc: Hannes Reinecke Signed-off-by: Martin K. Petersen Signed-off-by: Willy Tarreau --- drivers/scsi/mpt3sas/mpt3sas_scsih.c | 14 ++++++++++++++ 1 file changed, 14 insertions(+) scsi_print_command(scmd); #endif + /* + * Lock the device for any subsequent command until command is + * done. + */ + if (ata_12_16_cmd(scmd)) + scsi_internal_device_block(scmd->device); + scmd->scsi_done = done; sas_device_priv_data = scmd->device->hostdata; if (!sas_device_priv_data || !sas_device_priv_data->sas_target) { @@ -4046,6 +4057,9 @@ _scsih_io_done(struct MPT3SAS_ADAPTER *ioc, u16 smid, u8 msix_index, u32 reply) if (scmd == NULL) return 1; + if (ata_12_16_cmd(scmd)) + scsi_internal_device_unblock(scmd->device, SDEV_RUNNING); + mpi_request = mpt3sas_base_get_msg_frame(ioc, smid); if (mpi_reply == NULL) { -- 2.8.0.rc2.1.gbe9624a diff --git a/drivers/scsi/mpt3sas/mpt3sas_scsih.c b/drivers/scsi/mpt3sas/mpt3sas_scsih.c index f8c4b85..e414b71 100644 --- a/drivers/scsi/mpt3sas/mpt3sas_scsih.c +++ b/drivers/scsi/mpt3sas/mpt3sas_scsih.c @@ -3515,6 +3515,10 @@ _scsih_eedp_error_handling(struct scsi_cmnd *scmd, u16 ioc_status) SAM_STAT_CHECK_CONDITION; } +static inline bool ata_12_16_cmd(struct scsi_cmnd *scmd) { + return (scmd->cmnd[0] == ATA_12 || scmd->cmnd[0] == ATA_16); } /** * _scsih_qcmd_lck - main scsi request entry point @@ -3543,6 +3547,13 @@ _scsih_qcmd_lck(struct scsi_cmnd *scmd, void (*done)(struct scsi_cmnd *))