Received: by 2002:a05:6a10:2726:0:0:0:0 with SMTP id ib38csp938134pxb; Wed, 6 Apr 2022 04:50:57 -0700 (PDT) X-Google-Smtp-Source: ABdhPJzHQepaBWxSINCaBNLmZHErKofWS6QwQBtXxxzbaJfZqQFwcVWuC2j2K5dRT8g8h3sA3zPV X-Received: by 2002:a17:902:8e81:b0:154:710b:c2e8 with SMTP id bg1-20020a1709028e8100b00154710bc2e8mr8193036plb.126.1649245856975; Wed, 06 Apr 2022 04:50:56 -0700 (PDT) ARC-Seal: i=1; a=rsa-sha256; t=1649245856; cv=none; d=google.com; s=arc-20160816; b=UYSSL1gH43L7oMOddF1ISZO068vMv0bAB6wx75aqGcuZ0FACQB7d2ksqDDNs4rFjwJ C6LpxMkrQUGKh4RqxaRIalYya9nvxY5AmTRGViv1kDVy6uMjuOY0zUPct8WN3KM4C5je tsQ1R0TpAWQ2YQ4u415t0HcunME92sIZXqMgtqnqEYHXedqmR2Q2A1k8Sfs/lC3ek5ez O9Bn2QtBvF644WpT6TopeT/IU1T9jPTJuFc4qAPYsXtIdSnz1y4Pc1XiOk5QS9luxeqp b01RdEzjlM92O7Jf+b7KT31EvzECa5Xa1oxM6795jyVWCbRWg16YEHD7q+c4iPiLEr5q 6Q8g== ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=google.com; s=arc-20160816; h=list-id:precedence:content-transfer-encoding:mime-version :user-agent:references:in-reply-to:message-id:date:subject:cc:to :from:dkim-signature; bh=ZGOGlYtvJVaeKNQEBgoKztOnbBJqztcr/wS03XKIfgQ=; b=j6JXktqBCaYBEqr0/zGN9VK6pSNtkNH9vIyDzadDshTCy2glYzSDHTBkAx/moph3y4 XvS6CgEy0mDQ/9IR75A3DXZoFKK1jDJCD2qwVxAj8kVBFfR4YfnqGwOtic07dvRaO/nC VbTUdnqV3449Co3U2IS0FydKywnvdideuTx2U7ha2/REZZti5u+tMnT/1kGbQDHLxkJ4 w7HpB+iF0lWYazy6vsSowyeMUolj3rp6dkKfMFcm0VOqaGfLVSl/G+6OXnq74qIXKk6o a6mhhXLoWHfpHV0ldUqLGiJotsI2Cg6IoIYPbKg+tbq6h9d8DPSws9YDRd5MthR8n9/a pwfw== ARC-Authentication-Results: i=1; mx.google.com; dkim=pass header.i=@linuxfoundation.org header.s=korg header.b=sG30Jxjk; spf=softfail (google.com: domain of transitioning linux-kernel-owner@vger.kernel.org does not designate 23.128.96.19 as permitted sender) smtp.mailfrom=linux-kernel-owner@vger.kernel.org; dmarc=pass (p=NONE sp=NONE dis=NONE) header.from=linuxfoundation.org Return-Path: Received: from lindbergh.monkeyblade.net (lindbergh.monkeyblade.net. [23.128.96.19]) by mx.google.com with ESMTPS id ot6-20020a17090b3b4600b001bd14e01fbasi5354981pjb.168.2022.04.06.04.50.56 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Wed, 06 Apr 2022 04:50:56 -0700 (PDT) Received-SPF: softfail (google.com: domain of transitioning linux-kernel-owner@vger.kernel.org does not designate 23.128.96.19 as permitted sender) client-ip=23.128.96.19; Authentication-Results: mx.google.com; dkim=pass header.i=@linuxfoundation.org header.s=korg header.b=sG30Jxjk; spf=softfail (google.com: domain of transitioning linux-kernel-owner@vger.kernel.org does not designate 23.128.96.19 as permitted sender) smtp.mailfrom=linux-kernel-owner@vger.kernel.org; dmarc=pass (p=NONE sp=NONE dis=NONE) header.from=linuxfoundation.org Received: from vger.kernel.org (vger.kernel.org [23.128.96.18]) by lindbergh.monkeyblade.net (Postfix) with ESMTP id 7C478189A27; Wed, 6 Apr 2022 03:09:27 -0700 (PDT) Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S1575389AbiDEXDy (ORCPT + 99 others); Tue, 5 Apr 2022 19:03:54 -0400 Received: from lindbergh.monkeyblade.net ([23.128.96.19]:33172 "EHLO lindbergh.monkeyblade.net" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S1343864AbiDEKjo (ORCPT ); Tue, 5 Apr 2022 06:39:44 -0400 Received: from sin.source.kernel.org (sin.source.kernel.org [IPv6:2604:1380:40e1:4800::1]) by lindbergh.monkeyblade.net (Postfix) with ESMTPS id 84FB7222A0; Tue, 5 Apr 2022 03:24:52 -0700 (PDT) Received: from smtp.kernel.org (relay.kernel.org [52.25.139.140]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by sin.source.kernel.org (Postfix) with ESMTPS id 0100CCE1B5F; Tue, 5 Apr 2022 10:24:51 +0000 (UTC) Received: by smtp.kernel.org (Postfix) with ESMTPSA id 12A6AC385A2; Tue, 5 Apr 2022 10:24:48 +0000 (UTC) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=linuxfoundation.org; s=korg; t=1649154289; bh=1NZLc0/sH1SyykNuSfDvnX00seDYpNkLrjie/b+aJ8Y=; h=From:To:Cc:Subject:Date:In-Reply-To:References:From; b=sG30JxjkvwTJWdxQcwY+utA2DwoLZOBsjciy6SPbXQnGp4Rk5QE6iO1NJUl8LwlEz eIRmtRGLuKzn5O1LUt/UXdvEr8gAPoXje0BDSd8ywms7sOIzogBV9k5fuPjqqmNktH oyjPxgdLgOvgyxB8Dv5JTrdSs0obO2AtiuOsDOUw= From: Greg Kroah-Hartman To: linux-kernel@vger.kernel.org Cc: Greg Kroah-Hartman , stable@vger.kernel.org, Himanshu Madhani , Quinn Tran , Nilesh Javali , "Martin K. Petersen" Subject: [PATCH 5.10 525/599] scsi: qla2xxx: Fix disk failure to rediscover Date: Tue, 5 Apr 2022 09:33:39 +0200 Message-Id: <20220405070314.463076687@linuxfoundation.org> X-Mailer: git-send-email 2.35.1 In-Reply-To: <20220405070258.802373272@linuxfoundation.org> References: <20220405070258.802373272@linuxfoundation.org> User-Agent: quilt/0.66 MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit X-Spam-Status: No, score=-2.0 required=5.0 tests=BAYES_00,DKIMWL_WL_HIGH, DKIM_SIGNED,DKIM_VALID,DKIM_VALID_AU,HEADER_FROM_DIFFERENT_DOMAINS, MAILING_LIST_MULTI,RDNS_NONE,SPF_HELO_NONE,T_SCC_BODY_TEXT_LINE autolearn=no autolearn_force=no version=3.4.6 X-Spam-Checker-Version: SpamAssassin 3.4.6 (2021-04-09) on lindbergh.monkeyblade.net Precedence: bulk List-ID: X-Mailing-List: linux-kernel@vger.kernel.org From: Quinn Tran commit 6a45c8e137d4e2c72eecf1ac7cf64f2fdfcead99 upstream. User experienced some of the LUN failed to get rediscovered after long cable pull test. The issue is triggered by a race condition between driver setting session online state vs starting the LUN scan process at the same time. Current code set the online state after notifying the session is available. In this case, trigger to start the LUN scan process happened before driver could set the session in online state. LUN scan ends up with failure due to the session online check was failing. Set the online state before reporting of the availability of the session. Link: https://lore.kernel.org/r/20220310092604.22950-3-njavali@marvell.com Fixes: aecf043443d3 ("scsi: qla2xxx: Fix Remote port registration") Cc: stable@vger.kernel.org Reviewed-by: Himanshu Madhani Signed-off-by: Quinn Tran Signed-off-by: Nilesh Javali Signed-off-by: Martin K. Petersen Signed-off-by: Greg Kroah-Hartman --- drivers/scsi/qla2xxx/qla_init.c | 5 +++-- drivers/scsi/qla2xxx/qla_nvme.c | 5 +++++ 2 files changed, 8 insertions(+), 2 deletions(-) --- a/drivers/scsi/qla2xxx/qla_init.c +++ b/drivers/scsi/qla2xxx/qla_init.c @@ -5531,6 +5531,8 @@ qla2x00_reg_remote_port(scsi_qla_host_t if (atomic_read(&fcport->state) == FCS_ONLINE) return; + qla2x00_set_fcport_state(fcport, FCS_ONLINE); + rport_ids.node_name = wwn_to_u64(fcport->node_name); rport_ids.port_name = wwn_to_u64(fcport->port_name); rport_ids.port_id = fcport->d_id.b.domain << 16 | @@ -5631,6 +5633,7 @@ qla2x00_update_fcport(scsi_qla_host_t *v qla2x00_reg_remote_port(vha, fcport); break; case MODE_TARGET: + qla2x00_set_fcport_state(fcport, FCS_ONLINE); if (!vha->vha_tgt.qla_tgt->tgt_stop && !vha->vha_tgt.qla_tgt->tgt_stopped) qlt_fc_port_added(vha, fcport); @@ -5645,8 +5648,6 @@ qla2x00_update_fcport(scsi_qla_host_t *v break; } - qla2x00_set_fcport_state(fcport, FCS_ONLINE); - if (IS_IIDMA_CAPABLE(vha->hw) && vha->hw->flags.gpsc_supported) { if (fcport->id_changed) { fcport->id_changed = 0; --- a/drivers/scsi/qla2xxx/qla_nvme.c +++ b/drivers/scsi/qla2xxx/qla_nvme.c @@ -35,6 +35,11 @@ int qla_nvme_register_remote(struct scsi (fcport->nvme_flag & NVME_FLAG_REGISTERED)) return 0; + if (atomic_read(&fcport->state) == FCS_ONLINE) + return 0; + + qla2x00_set_fcport_state(fcport, FCS_ONLINE); + fcport->nvme_flag &= ~NVME_FLAG_RESETTING; memset(&req, 0, sizeof(struct nvme_fc_port_info));