Received: by 10.213.65.68 with SMTP id h4csp23510imn; Mon, 19 Mar 2018 18:15:39 -0700 (PDT) X-Google-Smtp-Source: AG47ELvTk4TAsjgnRASZLvxoWD6U092l1S+m6DrN3lxn6SKQz6jhl8nDv/vsP7bohjvcHLJ4KIz5 X-Received: by 10.98.107.134 with SMTP id g128mr11810499pfc.238.1521508539898; Mon, 19 Mar 2018 18:15:39 -0700 (PDT) ARC-Seal: i=1; a=rsa-sha256; t=1521508539; cv=none; d=google.com; s=arc-20160816; b=CsUnxQDOvHwnM32k9pq9RNlOt/YUZ65yop6P6MUmIYSg/RxpH6a0gSt03Ws6Nh679o MFCY9cyZwEO7WfPVAQZggVSgL6w46cZ0EbqAjia4DW9kOK9dqwpvj31QLpcr+GM5+QPX gg3QogqmJ3k/+3QS7HjdhepJkLbN1vuLUULGoBp2H01gNPReDHmrKwT3sIpTLoQkrDt+ cN/m0OcV04d17vzZQxVfNB42ZfRrOHQV7ZdWzt1mpJD+skP3b47mapkhL0vs42UNkce/ DKOhcdQHfgxG4rG2badPXVlAdX9LPzf7WARwAOyP8CIJutjVLYFT1hhzMRUkSCKFhJtc w+sw== ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=google.com; s=arc-20160816; h=list-id:precedence:sender:mime-version:user-agent:references :in-reply-to:message-id:date:subject:cc:to:from :arc-authentication-results; bh=kgsK934LiN1ZjexkJLUUlRzVwGnX52RMUqUdGPRl4xQ=; b=wAVzPsckD/aODn/tdy0Aa5V5oAMxjJVMnEVwdeBN0FP96hTswqNEIhwzduNIAt/tc+ yTTTCTNL9FP+928bgaShmPJCvXWhItarmg1K0GIsLquRkVKeXeOmkyv2B7ZqdCzO0iUt hZRRDs8SGYmZgigSZbdGmwoWiLc0DJ4+dV1aKJDSIcifO7Bq6E/ghSqYANPUOYt8HBS0 Z9OAL9dHHCSu8G9nns+9mq6gFTo4OxTQYyIL2qGyZv0WB4fLd5CSrZpP/wCtstiRiIgV vXMCIp4ZSgNBsBlVKbuhipEJlgb3AucNcUV4mQkOJ1BOs0gLEa1zTD6ECpRWVb0HKRNL GyLw== ARC-Authentication-Results: i=1; mx.google.com; spf=pass (google.com: best guess record for domain of linux-kernel-owner@vger.kernel.org designates 209.132.180.67 as permitted sender) smtp.mailfrom=linux-kernel-owner@vger.kernel.org Return-Path: Received: from vger.kernel.org (vger.kernel.org. [209.132.180.67]) by mx.google.com with ESMTP id v7si354370pfi.403.2018.03.19.18.15.25; Mon, 19 Mar 2018 18:15:39 -0700 (PDT) Received-SPF: pass (google.com: best guess record for domain of linux-kernel-owner@vger.kernel.org designates 209.132.180.67 as permitted sender) client-ip=209.132.180.67; Authentication-Results: mx.google.com; spf=pass (google.com: best guess record for domain of linux-kernel-owner@vger.kernel.org designates 209.132.180.67 as permitted sender) smtp.mailfrom=linux-kernel-owner@vger.kernel.org Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S970827AbeCSTGL (ORCPT + 99 others); Mon, 19 Mar 2018 15:06:11 -0400 Received: from mail.linuxfoundation.org ([140.211.169.12]:52302 "EHLO mail.linuxfoundation.org" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S1031750AbeCSS2i (ORCPT ); Mon, 19 Mar 2018 14:28:38 -0400 Received: from localhost (LFbn-1-12247-202.w90-92.abo.wanadoo.fr [90.92.61.202]) by mail.linuxfoundation.org (Postfix) with ESMTPSA id 9DC7ED28; Mon, 19 Mar 2018 18:28:37 +0000 (UTC) From: Greg Kroah-Hartman To: linux-kernel@vger.kernel.org Cc: Greg Kroah-Hartman , stable@vger.kernel.org, Bill Kuzeja , Himanshu Madhani , "Martin K. Petersen" Subject: [PATCH 4.9 238/241] scsi: qla2xxx: Fix extraneous ref on sps after adapter break Date: Mon, 19 Mar 2018 19:08:23 +0100 Message-Id: <20180319180801.029399990@linuxfoundation.org> X-Mailer: git-send-email 2.16.2 In-Reply-To: <20180319180751.172155436@linuxfoundation.org> References: <20180319180751.172155436@linuxfoundation.org> User-Agent: quilt/0.65 X-stable: review MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Sender: linux-kernel-owner@vger.kernel.org Precedence: bulk List-ID: X-Mailing-List: linux-kernel@vger.kernel.org 4.9-stable review patch. If anyone has any objections, please let me know. ------------------ From: Bill Kuzeja commit 4cd3b6ebff8510b2139d64024411207090cfe0a9 upstream. Hung task timeouts can result if a qlogic board breaks unexpectedly while running I/O. These tasks become hung because command srb reference counts are not going to zero, hence the affected srbs and commands do not get freed. This fix accounts for this extra reference in the srbs in the case of a board failure. Fixes: a465537ad1a4 ("qla2xxx: Disable the adapter and skip error recovery in case of register disconnect") Signed-off-by: Bill Kuzeja Acked-by: Himanshu Madhani Signed-off-by: Martin K. Petersen Signed-off-by: Greg Kroah-Hartman --- drivers/scsi/qla2xxx/qla_os.c | 8 ++++++-- 1 file changed, 6 insertions(+), 2 deletions(-) --- a/drivers/scsi/qla2xxx/qla_os.c +++ b/drivers/scsi/qla2xxx/qla_os.c @@ -1443,7 +1443,7 @@ qla2x00_loop_reset(scsi_qla_host_t *vha) void qla2x00_abort_all_cmds(scsi_qla_host_t *vha, int res) { - int que, cnt; + int que, cnt, status; unsigned long flags; srb_t *sp; struct qla_hw_data *ha = vha->hw; @@ -1473,8 +1473,12 @@ qla2x00_abort_all_cmds(scsi_qla_host_t * */ sp_get(sp); spin_unlock_irqrestore(&ha->hardware_lock, flags); - qla2xxx_eh_abort(GET_CMD_SP(sp)); + status = qla2xxx_eh_abort(GET_CMD_SP(sp)); spin_lock_irqsave(&ha->hardware_lock, flags); + /* Get rid of extra reference if immediate exit + * from ql2xxx_eh_abort */ + if (status == FAILED && (qla2x00_isp_reg_stat(ha))) + atomic_dec(&sp->ref_count); } req->outstanding_cmds[cnt] = NULL; sp->done(vha, sp, res);