From patchwork Thu Sep 12 23:24:40 2024 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Justin Tee X-Patchwork-Id: 13802759 Received: from mail-qv1-f41.google.com (mail-qv1-f41.google.com [209.85.219.41]) (using TLSv1.2 with cipher ECDHE-RSA-AES128-GCM-SHA256 (128/128 bits)) (No client certificate requested) by smtp.subspace.kernel.org (Postfix) with ESMTPS id 3FA631C2DB3 for ; Thu, 12 Sep 2024 23:09:49 +0000 (UTC) Authentication-Results: smtp.subspace.kernel.org; arc=none smtp.client-ip=209.85.219.41 ARC-Seal: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1726182590; cv=none; b=podiKuNOEIWd1fsrpAjR/iVeYDy03GCEun/jmA3NWnOTTmtNkTYgNF432Q+L4I7dfXkQipuDKICKOHNvH6gigMzSFABnj4dqUZaelV6EVJTlTpvLi4w7a+3ncvCnw/G3SAAafqIiefB4RoUJNa0WUKb4TCoV5l1gK0h5/9IXmg0= ARC-Message-Signature: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1726182590; c=relaxed/simple; bh=eXe94lKSbb33PXcCA0Zs6k17S5oE5UEvJN0Jc9wihrk=; h=From:To:Cc:Subject:Date:Message-Id:In-Reply-To:References: MIME-Version; b=l3S9yTqrOJo5XjzE7yeJgS+V482EUCJuJJC6J36+rK234CJ2of8pmDBRi4fguFgm5SimjhcgXvsfIIFfkcfmcwGEshgI5FM3h7ZP0BctNcv3Qk6Yu4mbqv6nfE9QWnhddkbiBUarn78DDVE10NTd2m08XNhdAa2m+NrLn6cBFrc= ARC-Authentication-Results: i=1; smtp.subspace.kernel.org; dmarc=pass (p=none dis=none) header.from=gmail.com; spf=pass smtp.mailfrom=gmail.com; dkim=pass (2048-bit key) header.d=gmail.com header.i=@gmail.com header.b=jv5zvXTs; arc=none smtp.client-ip=209.85.219.41 Authentication-Results: smtp.subspace.kernel.org; dmarc=pass (p=none dis=none) header.from=gmail.com Authentication-Results: smtp.subspace.kernel.org; spf=pass smtp.mailfrom=gmail.com Authentication-Results: smtp.subspace.kernel.org; dkim=pass (2048-bit key) header.d=gmail.com header.i=@gmail.com header.b="jv5zvXTs" Received: by mail-qv1-f41.google.com with SMTP id 6a1803df08f44-6c359c1a2fdso2704016d6.2 for ; Thu, 12 Sep 2024 16:09:49 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20230601; t=1726182588; x=1726787388; darn=vger.kernel.org; h=content-transfer-encoding:mime-version:references:in-reply-to :message-id:date:subject:cc:to:from:from:to:cc:subject:date :message-id:reply-to; bh=UzHkg5HGSM9ZPkC9++flHbBVNqPTP3EQyCjPGTTDhpc=; b=jv5zvXTsU7zrSEBApd01ulmQ5P5iXffe3omvm7A7SJdPFwF+FWdz6iXk3ve0AVTkz+ j8+Oi9iuU2Rq3J27lEpEn4c+0D95iBYD9DhUJDMmtLtiWQgEdMhE8fiyACcpbRh2ehpf tQJMMDfmoyNKHTaG4kS6t1KKO7jDRRLK3valRjP9ZXaJOPFYuRZvTzuSVFrC45wa69dz PKC4BVSitzBVAYrj70LWQBGUMR1SxRSl2N59t/PUvAzUQOt1cNc4uD6yXWI/V5YzVm56 UzV6FzcsQ/jQjKf6AhqPWUWyqanYltXjVNYT3VctpavSlblbktcu8oSgRQ1mkdXSbHCN TlrA== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20230601; t=1726182588; x=1726787388; h=content-transfer-encoding:mime-version:references:in-reply-to :message-id:date:subject:cc:to:from:x-gm-message-state:from:to:cc :subject:date:message-id:reply-to; bh=UzHkg5HGSM9ZPkC9++flHbBVNqPTP3EQyCjPGTTDhpc=; b=bbVsh+aQNTR6LigCWAaF/hvqZOUo9TwumY8Cg8lJ0htRmpxU54CD+itARjeTQe0a7E P/fEjSqTfbhkwcybDAm0dNaISix3DmCWH2GkyfIR6/C6wNjLAtMykz4J5Zoy1nHWokQJ P7xwc/6KqRVno0nm1KQT5pmJ2BDFY9z/cGoGL+fZsU1SYCo2IzWhoqTfQg8ZlIk8a0UQ imBCSIn8VNvvLyClkryr1ldG6nqQRNmznhR78EQsH29DdVMdXwaITs6xls11g0oVIEs9 /8DqsKntCW0eaVy9dGFfgr7so8gqRCn7irU/NtoRbFcnA8+Hj0gJLWAchyFactnRJ3W0 qDFg== X-Gm-Message-State: AOJu0Yxeu+p+jyiXG6E6wl+CdqIg0XhS/mYjkGmDfYn4mCKDAbPInv3C IltNE0mUNZMInBprxGhq/GDre4ZwJzvL+aXnv1TxMaoC9xxyDalQKJ63Ow== X-Google-Smtp-Source: AGHT+IHHuZVN86QLXUHKaNIGkt9zJDUQibwyU6PFlh1PTeJYvu3ivq3Of0BB2gGfgJKdLCyoIbtOHQ== X-Received: by 2002:a05:6214:3383:b0:6c3:68d0:350d with SMTP id 6a1803df08f44-6c57df2134bmr13767256d6.14.1726182588008; Thu, 12 Sep 2024 16:09:48 -0700 (PDT) Received: from dhcp-10-231-55-133.dhcp.broadcom.net ([192.19.223.252]) by smtp.gmail.com with ESMTPSA id 6a1803df08f44-6c534339a88sm59363136d6.50.2024.09.12.16.09.47 (version=TLS1_2 cipher=ECDHE-ECDSA-AES128-GCM-SHA256 bits=128/128); Thu, 12 Sep 2024 16:09:47 -0700 (PDT) From: Justin Tee To: linux-scsi@vger.kernel.org Cc: jsmart2021@gmail.com, justin.tee@broadcom.com, Justin Tee Subject: [PATCH 1/8] lpfc: Add ELS_RSP cmd to the list of WQEs to flush in lpfc_els_flush_cmd Date: Thu, 12 Sep 2024 16:24:40 -0700 Message-Id: <20240912232447.45607-2-justintee8345@gmail.com> X-Mailer: git-send-email 2.38.0 In-Reply-To: <20240912232447.45607-1-justintee8345@gmail.com> References: <20240912232447.45607-1-justintee8345@gmail.com> Precedence: bulk X-Mailing-List: linux-scsi@vger.kernel.org List-Id: List-Subscribe: List-Unsubscribe: MIME-Version: 1.0 During HBA stress testing, a spam of received PLOGIs exposes a resource recovery bug causing leakage of lpfc_sqlq entries from the global phba->sli4_hba.lpfc_els_sgl_list. The issue is in lpfc_els_flush_cmd, where the driver attempts to recover outstanding els sgls when walking the txcmplq. Only CMD_ELS_REQUEST64_CRs and CMD_GEN_REQUEST64_CRs are added to the abort and cancel lists. A check for CMD_XMIT_ELS_RSP64_WQE is missing in order to recover LS_ACC usages of the phba->sli4_hba.lpfc_els_sgl_list too. Fix by adding CMD_XMIT_ELS_RSP64_WQE as part of the txcmplq walk when adding WQEs to the abort and cancel list in lpfc_els_flush_cmd. Also, update naming convention from CRs to WQEs. Signed-off-by: Justin Tee --- drivers/scsi/lpfc/lpfc_els.c | 7 ++++--- 1 file changed, 4 insertions(+), 3 deletions(-) diff --git a/drivers/scsi/lpfc/lpfc_els.c b/drivers/scsi/lpfc/lpfc_els.c index de0ec945d2f1..7219b1ada1ea 100644 --- a/drivers/scsi/lpfc/lpfc_els.c +++ b/drivers/scsi/lpfc/lpfc_els.c @@ -9658,11 +9658,12 @@ lpfc_els_flush_cmd(struct lpfc_vport *vport) if (piocb->cmd_flag & LPFC_DRIVER_ABORTED && !mbx_tmo_err) continue; - /* On the ELS ring we can have ELS_REQUESTs or - * GEN_REQUESTs waiting for a response. + /* On the ELS ring we can have ELS_REQUESTs, ELS_RSPs, + * or GEN_REQUESTs waiting for a CQE response. */ ulp_command = get_job_cmnd(phba, piocb); - if (ulp_command == CMD_ELS_REQUEST64_CR) { + if (ulp_command == CMD_ELS_REQUEST64_WQE || + ulp_command == CMD_XMIT_ELS_RSP64_WQE) { list_add_tail(&piocb->dlist, &abort_list); /* If the link is down when flushing ELS commands From patchwork Thu Sep 12 23:24:41 2024 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Justin Tee X-Patchwork-Id: 13802760 Received: from mail-qv1-f52.google.com (mail-qv1-f52.google.com [209.85.219.52]) (using TLSv1.2 with cipher ECDHE-RSA-AES128-GCM-SHA256 (128/128 bits)) (No client certificate requested) by smtp.subspace.kernel.org (Postfix) with ESMTPS id DF7502C80 for ; Thu, 12 Sep 2024 23:09:55 +0000 (UTC) Authentication-Results: smtp.subspace.kernel.org; arc=none smtp.client-ip=209.85.219.52 ARC-Seal: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1726182597; cv=none; b=ELidl/SGOKKyZ9WQMXaBJZPsmQkdh/CxPAtBXQ++9wZ6j45Gc0LJudKRa9w86+rp8FX7zuC+6NoZfFK+X0wdpi0VN7IR2Kx6OgDHF/t7evMk8KL9L/pcuhq5BdFhZRZnwZZRwxHqeg/OzTNlSYflTVZIxSjRudlXT4rgenFAkAg= ARC-Message-Signature: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1726182597; c=relaxed/simple; bh=TNjR3OPytMXT/bYUnKn1u8RQyXcTcS9fx5ulmrohPHc=; h=From:To:Cc:Subject:Date:Message-Id:In-Reply-To:References: MIME-Version; b=li/C8DwJxFwBea/QkVBkWzYn+ufBR6p9A3uZC+dfUDhj5O1fhXoP4a3EeXca7YiKHEYAdY6q0ckoFDzEAUWaLB1PGlcVU17qDn7gMEU8VxQxvvC0ju9msSHPC1SH1ymL5dITnR2rm1yh9ASDfSrTqvgLFAJsS/WNtGgai1jB/00= ARC-Authentication-Results: i=1; smtp.subspace.kernel.org; dmarc=pass (p=none dis=none) header.from=gmail.com; spf=pass smtp.mailfrom=gmail.com; dkim=pass (2048-bit key) header.d=gmail.com header.i=@gmail.com header.b=UGMI1tF/; arc=none smtp.client-ip=209.85.219.52 Authentication-Results: smtp.subspace.kernel.org; dmarc=pass (p=none dis=none) header.from=gmail.com Authentication-Results: smtp.subspace.kernel.org; spf=pass smtp.mailfrom=gmail.com Authentication-Results: smtp.subspace.kernel.org; dkim=pass (2048-bit key) header.d=gmail.com header.i=@gmail.com header.b="UGMI1tF/" Received: by mail-qv1-f52.google.com with SMTP id 6a1803df08f44-6c34dd6c21aso10902526d6.2 for ; Thu, 12 Sep 2024 16:09:55 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20230601; t=1726182595; x=1726787395; darn=vger.kernel.org; h=content-transfer-encoding:mime-version:references:in-reply-to :message-id:date:subject:cc:to:from:from:to:cc:subject:date :message-id:reply-to; bh=VFI1DnonW2Yu3pi8vhiZeBpNucvdRqm5cKpMYKYAcRw=; b=UGMI1tF/2KmLqKJ9f9oNdl9VVXCASFFS4yBSJUNUV6Qn0l7GIQaDi7VkBFoycurSJU TwKr3iS8zIbcxmWVU+8gj5uOcUfUHmGAwQN/Uon36Z1W+pyCAayYsvrWUuqZP+H7MDrU 3WoooBu/f+bfHnPaxlJdIVzIsA4xPuof1naL4Gh4Ux1LwniUv/jboSMevfcQCQon3NeO 1ajU1uWAsmonuZmRTuSCNKhBvQhfRhKh32+LiG32PrtJxJUxwdcyECvC5iRNCICNRwY7 QQGr6YfYs1JU7IpaZt1/e17TwZW/hfGm57MGUsFd3CfsVs5WIkeXT9Zl+AEz357Jy6CN S3lA== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20230601; t=1726182595; x=1726787395; h=content-transfer-encoding:mime-version:references:in-reply-to :message-id:date:subject:cc:to:from:x-gm-message-state:from:to:cc :subject:date:message-id:reply-to; bh=VFI1DnonW2Yu3pi8vhiZeBpNucvdRqm5cKpMYKYAcRw=; b=PA7/Ih2M24hitrTMv514tRLKeYiB0hHm6BiO9Wgp04fvLXdQfQQIe+jwUms4O28ZpX p7vntuQ5NnFoWcg34EX2KW5HfC3sa0gmW0MH6dRPHRffvsBih2QOWQ9uwFU7jfPzMCdH Uf0etYZ322QnFpNU0LmRlgIeWEYyRY+pdLqGsrPp3DH90mlLxSkU2oTlWPqWyAIMYp1t XVVSzaqQJtTpOpkR/mfXX7Ecc5wwjX88Qw7Cb8lamG4Xr6wv+BYz/NlliRa5nAAVtAnT XAK9w2aUJV4pANls7X8kWo6ZFCzE2SFx5Tt+oR3TOg5c5OVFCXY87bI+g/EqQDEEH8ez KVXA== X-Gm-Message-State: AOJu0YyW+gUVCeBarGO/QfWzikIcQJqt6qsBPaFJTPwjQWWDu2l/LUbj 5GGxyw5h+peLz73tUr+/H6PxCgiqDmKq1vLG4wGqOcaIVI4/4jiiBVvG2g== X-Google-Smtp-Source: AGHT+IF/iNzQlc2JWoSkv5dZ2d2A22hw9uVJI9FwpWC0m0W6mFFGE6mv6QaPRwfuDN4a6NVbx+E39g== X-Received: by 2002:a05:6214:2c03:b0:6c5:2747:f458 with SMTP id 6a1803df08f44-6c57351a6d8mr67608106d6.14.1726182594627; Thu, 12 Sep 2024 16:09:54 -0700 (PDT) Received: from dhcp-10-231-55-133.dhcp.broadcom.net ([192.19.223.252]) by smtp.gmail.com with ESMTPSA id 6a1803df08f44-6c534339a88sm59363136d6.50.2024.09.12.16.09.53 (version=TLS1_2 cipher=ECDHE-ECDSA-AES128-GCM-SHA256 bits=128/128); Thu, 12 Sep 2024 16:09:54 -0700 (PDT) From: Justin Tee To: linux-scsi@vger.kernel.org Cc: jsmart2021@gmail.com, justin.tee@broadcom.com, Justin Tee Subject: [PATCH 2/8] lpfc: Update phba link state conditional before sending CMF_SYNC_WQE Date: Thu, 12 Sep 2024 16:24:41 -0700 Message-Id: <20240912232447.45607-3-justintee8345@gmail.com> X-Mailer: git-send-email 2.38.0 In-Reply-To: <20240912232447.45607-1-justintee8345@gmail.com> References: <20240912232447.45607-1-justintee8345@gmail.com> Precedence: bulk X-Mailing-List: linux-scsi@vger.kernel.org List-Id: List-Subscribe: List-Unsubscribe: MIME-Version: 1.0 It's possible for the driver to send a CMF_SYNC_WQE to nonresponsive firmware during reset of the adapter. The phba link_state conditional check is currently a strict == LPFC_LINK_DOWN, which does not cover initialization states before reaching the LPFC_LINK_UP state. Update the phba->link_state conditional to < LPFC_LINK_UP so that all initialization states are covered before allowing sending CMF_SYNC_WQE. Update taking of the hbalock to be during this link_state check as well. Signed-off-by: Justin Tee --- drivers/scsi/lpfc/lpfc_sli.c | 9 ++++++--- 1 file changed, 6 insertions(+), 3 deletions(-) diff --git a/drivers/scsi/lpfc/lpfc_sli.c b/drivers/scsi/lpfc/lpfc_sli.c index 332b8d2348e9..bb5fd3322273 100644 --- a/drivers/scsi/lpfc/lpfc_sli.c +++ b/drivers/scsi/lpfc/lpfc_sli.c @@ -1940,12 +1940,15 @@ lpfc_issue_cmf_sync_wqe(struct lpfc_hba *phba, u32 ms, u64 total) atot = atomic_xchg(&phba->cgn_sync_alarm_cnt, 0); wtot = atomic_xchg(&phba->cgn_sync_warn_cnt, 0); + spin_lock_irqsave(&phba->hbalock, iflags); + /* ONLY Managed mode will send the CMF_SYNC_WQE to the HBA */ if (phba->cmf_active_mode != LPFC_CFG_MANAGED || - phba->link_state == LPFC_LINK_DOWN) - return 0; + phba->link_state < LPFC_LINK_UP) { + ret_val = 0; + goto out_unlock; + } - spin_lock_irqsave(&phba->hbalock, iflags); sync_buf = __lpfc_sli_get_iocbq(phba); if (!sync_buf) { lpfc_printf_log(phba, KERN_ERR, LOG_CGN_MGMT, From patchwork Thu Sep 12 23:24:42 2024 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Justin Tee X-Patchwork-Id: 13802761 Received: from mail-qv1-f51.google.com (mail-qv1-f51.google.com [209.85.219.51]) (using TLSv1.2 with cipher ECDHE-RSA-AES128-GCM-SHA256 (128/128 bits)) (No client certificate requested) by smtp.subspace.kernel.org (Postfix) with ESMTPS id 483332C80; Thu, 12 Sep 2024 23:10:01 +0000 (UTC) Authentication-Results: smtp.subspace.kernel.org; arc=none smtp.client-ip=209.85.219.51 ARC-Seal: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1726182602; cv=none; b=LrHxSNBN5f0GJk/is86ijI3mBTXhQ7EKPjwBmWGkbzsVCzDIcSd5JeyYQHENAErIoNAm8hqWISLcdTzIHfpqfU5/0CT1LvYXUaBuLUo9h60mpKPqyC235KvkCq2x2VRxJxIE7WVPwm/P+mzTZiYhcNdu1IZ3aRakJrLxyZrxkBQ= ARC-Message-Signature: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1726182602; c=relaxed/simple; bh=0Ge18v6zaAvhk/oEiRWweDIF+9hvGks00PCRVeXOVmM=; h=From:To:Cc:Subject:Date:Message-Id:In-Reply-To:References: MIME-Version; b=DpRnYwveEizfwQfwAXAV7kfq4i/5ZVyCB2m2EP/wR0+6f9wZ/vvV8zf1mMCjPrx/xnYqDSLTP0i5LCThnR1drXcxG8zvZ4zrBswAUDbO/D8WW8yxY3IS6SeO2FbWVFlPVOCWbXyuUoIYOhYH/tN/iHc0SgfAtRI2GFwtBRuvzas= ARC-Authentication-Results: i=1; smtp.subspace.kernel.org; dmarc=pass (p=none dis=none) header.from=gmail.com; spf=pass smtp.mailfrom=gmail.com; dkim=pass (2048-bit key) header.d=gmail.com header.i=@gmail.com header.b=ABuFw/6p; arc=none smtp.client-ip=209.85.219.51 Authentication-Results: smtp.subspace.kernel.org; dmarc=pass (p=none dis=none) header.from=gmail.com Authentication-Results: smtp.subspace.kernel.org; spf=pass smtp.mailfrom=gmail.com Authentication-Results: smtp.subspace.kernel.org; dkim=pass (2048-bit key) header.d=gmail.com header.i=@gmail.com header.b="ABuFw/6p" Received: by mail-qv1-f51.google.com with SMTP id 6a1803df08f44-6c579748bf4so2875866d6.1; Thu, 12 Sep 2024 16:10:01 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20230601; t=1726182600; x=1726787400; darn=vger.kernel.org; h=content-transfer-encoding:mime-version:references:in-reply-to :message-id:date:subject:cc:to:from:from:to:cc:subject:date :message-id:reply-to; bh=wiC3DzZpi8FezEv1LFuaGk5XrynBNf5kaRDjIajewSc=; b=ABuFw/6p9P2tB3zfPHNiYWd0ZcGeCDDBL416WkLCZT/uj2CInBh2U50NhNocimJ53M SiyMyUsxf1uj+0WgYOq88Hjnfop6UGehH7oBZRVIwTfsCr8mPnDMvXp+7LVL8RU75OYI cZr8CTW0Zjf5tkb2J5P7EifoOPKttDoN29TbcMk426OQEo0kYW242RfRm+PBH+2dQSzF cvjguVdGbwa9bjVBBWrLbM2huQ7kS29Knf3Dqt9DfkD42bKpJsTM20ZdA4z0w5ORcGAV iCbNF2U+Uw6xzqqqLk0plbYC8OvH+uwuB3BWmnjSKPH8iO3d1zCtAMQyr41LjoRYs1Gf CGlw== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20230601; t=1726182600; x=1726787400; h=content-transfer-encoding:mime-version:references:in-reply-to :message-id:date:subject:cc:to:from:x-gm-message-state:from:to:cc :subject:date:message-id:reply-to; bh=wiC3DzZpi8FezEv1LFuaGk5XrynBNf5kaRDjIajewSc=; b=YoO59AEAopuHK+sxpI42QGNvoc/NdmneQuWRAdaiBHFnL/ES0xbsa+SDpzp51wXoOJ 8sugMFfzDwiq5s8Uxb+AuRfxOa+lqiqSQMvFsVJLX36uT1bU7eUgQ23EUsk2ZkOLD9hX RG1SxhRn5PjbbBpLcGHOhGrspJ2Ph9QSsO2wy32KOBPwnarGZy1SZePpg+z3/s1Qsd+Z G+AIVh4BsUAbJiBdKkB0hLp06uMTaZyZhHtspTlq8x51PYi4AncUSgmXznjoulUMBRCn BD0manUv9/S303nVp9aZdUrrQi2ltlkYr4eVlXBC9p6y+Qmj14Llo+jvytDA3Mn29/iO uo+A== X-Forwarded-Encrypted: i=1; AJvYcCUNTv9Jfna/d00+Si2JNURqeLxjQor5sm6byJRANj6zM7Kra5gZbDi/VgrP37zcWLNBOz/5q0A=@vger.kernel.org X-Gm-Message-State: AOJu0YxbxQPWX/55ZlP5/mBMIRg4hAQPZHh7Pa4Z6ZDKCPT8EDHQpSpW EwGLXZK0gbRh0Ae/9Si+5ifCM4MvMeiEsQnMDc9qOtaMDzL6cTQzAGF9VQ== X-Google-Smtp-Source: AGHT+IHcAI2C/NRSUgFSmEpB8S0KE3BS//6WU1Z9nn8XgOxmqSkwYg+VoUWBK6QInSaJROqu/9+Ogw== X-Received: by 2002:a05:6214:2f0f:b0:6c5:55bc:2705 with SMTP id 6a1803df08f44-6c57df773a1mr15388186d6.6.1726182599848; Thu, 12 Sep 2024 16:09:59 -0700 (PDT) Received: from dhcp-10-231-55-133.dhcp.broadcom.net ([192.19.223.252]) by smtp.gmail.com with ESMTPSA id 6a1803df08f44-6c534339a88sm59363136d6.50.2024.09.12.16.09.58 (version=TLS1_2 cipher=ECDHE-ECDSA-AES128-GCM-SHA256 bits=128/128); Thu, 12 Sep 2024 16:09:59 -0700 (PDT) From: Justin Tee To: linux-scsi@vger.kernel.org Cc: jsmart2021@gmail.com, justin.tee@broadcom.com, Justin Tee , stable@vger.kernel.org Subject: [PATCH 3/8] lpfc: Restrict support for 32 byte CDBs to specific HBAs Date: Thu, 12 Sep 2024 16:24:42 -0700 Message-Id: <20240912232447.45607-4-justintee8345@gmail.com> X-Mailer: git-send-email 2.38.0 In-Reply-To: <20240912232447.45607-1-justintee8345@gmail.com> References: <20240912232447.45607-1-justintee8345@gmail.com> Precedence: bulk X-Mailing-List: linux-scsi@vger.kernel.org List-Id: List-Subscribe: List-Unsubscribe: MIME-Version: 1.0 An older generation of HBAs are failing FCP discovery due to usage of an outdated field in FCP command WQEs. Fix by checking the SLI Interface Type register for applicable support of 32 Byte CDB commands, and restore a setting for a WQE path using normal 16 byte CDBs. Fixes: af20bb73ac25 ("scsi: lpfc: Add support for 32 byte CDBs") Cc: # v6.10+ Signed-off-by: Justin Tee --- drivers/scsi/lpfc/lpfc_hw4.h | 3 +++ drivers/scsi/lpfc/lpfc_init.c | 21 ++++++++++++++++++--- drivers/scsi/lpfc/lpfc_scsi.c | 2 +- 3 files changed, 22 insertions(+), 4 deletions(-) diff --git a/drivers/scsi/lpfc/lpfc_hw4.h b/drivers/scsi/lpfc/lpfc_hw4.h index 500253007b1d..26e1313ebb21 100644 --- a/drivers/scsi/lpfc/lpfc_hw4.h +++ b/drivers/scsi/lpfc/lpfc_hw4.h @@ -4847,6 +4847,7 @@ struct fcp_iwrite64_wqe { #define cmd_buff_len_SHIFT 16 #define cmd_buff_len_MASK 0x00000ffff #define cmd_buff_len_WORD word3 +/* Note: payload_offset_len field depends on ASIC support */ #define payload_offset_len_SHIFT 0 #define payload_offset_len_MASK 0x0000ffff #define payload_offset_len_WORD word3 @@ -4863,6 +4864,7 @@ struct fcp_iread64_wqe { #define cmd_buff_len_SHIFT 16 #define cmd_buff_len_MASK 0x00000ffff #define cmd_buff_len_WORD word3 +/* Note: payload_offset_len field depends on ASIC support */ #define payload_offset_len_SHIFT 0 #define payload_offset_len_MASK 0x0000ffff #define payload_offset_len_WORD word3 @@ -4879,6 +4881,7 @@ struct fcp_icmnd64_wqe { #define cmd_buff_len_SHIFT 16 #define cmd_buff_len_MASK 0x00000ffff #define cmd_buff_len_WORD word3 +/* Note: payload_offset_len field depends on ASIC support */ #define payload_offset_len_SHIFT 0 #define payload_offset_len_MASK 0x0000ffff #define payload_offset_len_WORD word3 diff --git a/drivers/scsi/lpfc/lpfc_init.c b/drivers/scsi/lpfc/lpfc_init.c index e1dfa96c2a55..0c1404dc5f3b 100644 --- a/drivers/scsi/lpfc/lpfc_init.c +++ b/drivers/scsi/lpfc/lpfc_init.c @@ -4699,6 +4699,7 @@ lpfc_create_port(struct lpfc_hba *phba, int instance, struct device *dev) uint64_t wwn; bool use_no_reset_hba = false; int rc; + u8 if_type; if (lpfc_no_hba_reset_cnt) { if (phba->sli_rev < LPFC_SLI_REV4 && @@ -4773,10 +4774,24 @@ lpfc_create_port(struct lpfc_hba *phba, int instance, struct device *dev) shost->max_id = LPFC_MAX_TARGET; shost->max_lun = vport->cfg_max_luns; shost->this_id = -1; - if (phba->sli_rev == LPFC_SLI_REV4) - shost->max_cmd_len = LPFC_FCP_CDB_LEN_32; - else + + /* Set max_cmd_len applicable to ASIC support */ + if (phba->sli_rev == LPFC_SLI_REV4) { + if_type = bf_get(lpfc_sli_intf_if_type, + &phba->sli4_hba.sli_intf); + switch (if_type) { + case LPFC_SLI_INTF_IF_TYPE_2: + fallthrough; + case LPFC_SLI_INTF_IF_TYPE_6: + shost->max_cmd_len = LPFC_FCP_CDB_LEN_32; + break; + default: + shost->max_cmd_len = LPFC_FCP_CDB_LEN; + break; + } + } else { shost->max_cmd_len = LPFC_FCP_CDB_LEN; + } if (phba->sli_rev == LPFC_SLI_REV4) { if (!phba->cfg_fcp_mq_threshold || diff --git a/drivers/scsi/lpfc/lpfc_scsi.c b/drivers/scsi/lpfc/lpfc_scsi.c index 60cd60ebff38..0eaede8275da 100644 --- a/drivers/scsi/lpfc/lpfc_scsi.c +++ b/drivers/scsi/lpfc/lpfc_scsi.c @@ -4760,7 +4760,7 @@ static int lpfc_scsi_prep_cmnd_buf_s4(struct lpfc_vport *vport, /* Word 3 */ bf_set(payload_offset_len, &wqe->fcp_icmd, - sizeof(struct fcp_cmnd32) + sizeof(struct fcp_rsp)); + sizeof(struct fcp_cmnd) + sizeof(struct fcp_rsp)); /* Word 6 */ bf_set(wqe_ctxt_tag, &wqe->generic.wqe_com, From patchwork Thu Sep 12 23:24:43 2024 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Justin Tee X-Patchwork-Id: 13802762 Received: from mail-qv1-f52.google.com (mail-qv1-f52.google.com [209.85.219.52]) (using TLSv1.2 with cipher ECDHE-RSA-AES128-GCM-SHA256 (128/128 bits)) (No client certificate requested) by smtp.subspace.kernel.org (Postfix) with ESMTPS id 05B681C2DCF for ; Thu, 12 Sep 2024 23:10:03 +0000 (UTC) Authentication-Results: smtp.subspace.kernel.org; arc=none smtp.client-ip=209.85.219.52 ARC-Seal: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1726182605; cv=none; b=TAtLV5sKeY972iS0IOFy4WtEg0BpNurgJB0TY4MwhIYnNeHkGNzUS2QLIA8fq1TJU23/ELxyzVU51HHkWDW0z7pwTPIFqiaAUgRiWL1lR66nnXC6DB2Ph2VhUTa3BmjJHbTuyoWqfYLSgZ0lA3auXqK2gFjof1xFgmk+QoN4Er8= ARC-Message-Signature: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1726182605; c=relaxed/simple; bh=6Ooz5ZnOE4Zgy3EOkwwYN8TYdvq4lKh26mkmpyeNHrw=; h=From:To:Cc:Subject:Date:Message-Id:In-Reply-To:References: MIME-Version; b=DCCJoyjJHWeqdCnB3Q4rylJVCggrA1/NYls9JMtDeQkgXXsQqDdCmmF/hQKGyOSdO0/l2v5KqDmCRaFd03QqDmK6CuK0vHYc9qR3GrgW7b4SyXGjRCunyfMl8tHY8e5g+sFnFJhP2vI+m/aw1TTZilAbiuluBRaK620IrcvGT5g= ARC-Authentication-Results: i=1; smtp.subspace.kernel.org; dmarc=pass (p=none dis=none) header.from=gmail.com; spf=pass smtp.mailfrom=gmail.com; dkim=pass (2048-bit key) header.d=gmail.com header.i=@gmail.com header.b=DanfSIJq; arc=none smtp.client-ip=209.85.219.52 Authentication-Results: smtp.subspace.kernel.org; dmarc=pass (p=none dis=none) header.from=gmail.com Authentication-Results: smtp.subspace.kernel.org; spf=pass smtp.mailfrom=gmail.com Authentication-Results: smtp.subspace.kernel.org; dkim=pass (2048-bit key) header.d=gmail.com header.i=@gmail.com header.b="DanfSIJq" Received: by mail-qv1-f52.google.com with SMTP id 6a1803df08f44-6c35b545b41so23402756d6.1 for ; Thu, 12 Sep 2024 16:10:03 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20230601; t=1726182603; x=1726787403; darn=vger.kernel.org; h=content-transfer-encoding:mime-version:references:in-reply-to :message-id:date:subject:cc:to:from:from:to:cc:subject:date :message-id:reply-to; bh=kaYbicTWQW1jLKelXt5LSFWDCPSznt6D0PyW+bVvXBM=; b=DanfSIJqHdbMviIxbrFipH0f43mzqkXNtMuWVi+aMMXa++e6J4cXIyveWecQCoYglr eGoMg/XAPjd/3pGCHsCXtv8hKVH4jzpBrzIpXodOYFyM96QoPemaEBqP6hMQkQgQqY15 4zxi3XzK+XE3gYoyPtiMXwPviln7vj8qqVsFefRQHcnw/EBAhp8VPfBxIfyDCawQnU+j 7x88jUeImMS1L784/9roBpXb2VfL/KHC2Gr+a8TAV4KyDLa9YPQBCRBHVSQjVwK/pQVX MR4g0svbTO00EYwf+BUprchB+U+CoCC1lyJhG8khEZWXYmbV/0sILsAEGXKR4NxHkRXg tAFw== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20230601; t=1726182603; x=1726787403; h=content-transfer-encoding:mime-version:references:in-reply-to :message-id:date:subject:cc:to:from:x-gm-message-state:from:to:cc :subject:date:message-id:reply-to; bh=kaYbicTWQW1jLKelXt5LSFWDCPSznt6D0PyW+bVvXBM=; b=Z8Re85K3clKfTlD5jMb6v0lhcINmSw9V2qUDI4icnc/lBfsG59BxQThyhchzSIaHZR +bBPTFabk7AMQ8KcEFt89SMxF12/CHeq86+nmHvDTr5KvSVXKSMsRrUnDYXCc2Edhg3p J4hmIY/oZfOqUzxp+DEUtqKDSODoN5TGXLwBflPRsrf1lOfv6KLNjrzDxRleZlKjDUgR pMahmtHs6n5uO0d67tkBvuG1efCfbjKvfOGPs9SfQYXrSkRfw1Y9MVgaDJ4wyhglPkym Ys6DieHqRc7JUeawVXqbXAUvjI7+m7AHKBlAwR1aogCIcZolRps2WzQxbVhtUgCLQ7qw 72yg== X-Gm-Message-State: AOJu0YznlQSynBWsAP+/IGD65EXP9usX8X814khsNVuIKGiSNvpmK2LX TcAHOfsVmHgs0jpC3Hb3gzjBq7apwXeNGCdo7y1UfJJQUtgGAiyeXxadPg== X-Google-Smtp-Source: AGHT+IHX3skUETbOlMiOKiTSiDSdvx9zoi6YKvWKcuu9NDEwrfkypXSfv6XzEY/TcN+A54BYAX/hQw== X-Received: by 2002:a05:6214:5b86:b0:6c5:5256:62f0 with SMTP id 6a1803df08f44-6c573b812c7mr67130176d6.26.1726182602841; Thu, 12 Sep 2024 16:10:02 -0700 (PDT) Received: from dhcp-10-231-55-133.dhcp.broadcom.net ([192.19.223.252]) by smtp.gmail.com with ESMTPSA id 6a1803df08f44-6c534339a88sm59363136d6.50.2024.09.12.16.10.01 (version=TLS1_2 cipher=ECDHE-ECDSA-AES128-GCM-SHA256 bits=128/128); Thu, 12 Sep 2024 16:10:02 -0700 (PDT) From: Justin Tee To: linux-scsi@vger.kernel.org Cc: jsmart2021@gmail.com, justin.tee@broadcom.com, Justin Tee Subject: [PATCH 4/8] lpfc: Fix kref imbalance on fabric ndlps from dev_loss_tmo handler Date: Thu, 12 Sep 2024 16:24:43 -0700 Message-Id: <20240912232447.45607-5-justintee8345@gmail.com> X-Mailer: git-send-email 2.38.0 In-Reply-To: <20240912232447.45607-1-justintee8345@gmail.com> References: <20240912232447.45607-1-justintee8345@gmail.com> Precedence: bulk X-Mailing-List: linux-scsi@vger.kernel.org List-Id: List-Subscribe: List-Unsubscribe: MIME-Version: 1.0 With a FLOGI outstanding and loss of physical link connection to the fabric for the duration of dev_loss_tmo, there is a fabric ndlp kref imbalance that decrements the kref and sets the NLP_IN_RECOV_POST_DEV_LOSS flag at the same time. The issue is that when the FLOGI completion routine executes, the fabric ndlp could already be freed because of the final kref put from the dev_loss_tmo handler. Fix by early returning before the ndlp kref put if the ndlp is deemed a candidate for NLP_IN_RECOV_POST_DEV_LOSS in the FLOGI completion routine. Signed-off-by: Justin Tee --- drivers/scsi/lpfc/lpfc_hbadisc.c | 10 ++++------ 1 file changed, 4 insertions(+), 6 deletions(-) diff --git a/drivers/scsi/lpfc/lpfc_hbadisc.c b/drivers/scsi/lpfc/lpfc_hbadisc.c index 35c9181c6608..9241075f72fa 100644 --- a/drivers/scsi/lpfc/lpfc_hbadisc.c +++ b/drivers/scsi/lpfc/lpfc_hbadisc.c @@ -527,6 +527,9 @@ lpfc_dev_loss_tmo_handler(struct lpfc_nodelist *ndlp) * the following lpfc_nlp_put is necessary after fabric node is * recovered. */ + spin_lock_irqsave(&ndlp->lock, iflags); + ndlp->nlp_flag &= ~NLP_IN_DEV_LOSS; + spin_unlock_irqrestore(&ndlp->lock, iflags); if (recovering) { lpfc_printf_vlog(vport, KERN_INFO, LOG_DISCOVERY | LOG_NODE, @@ -539,6 +542,7 @@ lpfc_dev_loss_tmo_handler(struct lpfc_nodelist *ndlp) spin_lock_irqsave(&ndlp->lock, iflags); ndlp->save_flags |= NLP_IN_RECOV_POST_DEV_LOSS; spin_unlock_irqrestore(&ndlp->lock, iflags); + return fcf_inuse; } else if (ndlp->nlp_state == NLP_STE_UNMAPPED_NODE) { /* Fabric node fully recovered before this dev_loss_tmo * queue work is processed. Thus, ignore the @@ -552,15 +556,9 @@ lpfc_dev_loss_tmo_handler(struct lpfc_nodelist *ndlp) ndlp->nlp_DID, kref_read(&ndlp->kref), ndlp, ndlp->nlp_flag, vport->port_state); - spin_lock_irqsave(&ndlp->lock, iflags); - ndlp->nlp_flag &= ~NLP_IN_DEV_LOSS; - spin_unlock_irqrestore(&ndlp->lock, iflags); return fcf_inuse; } - spin_lock_irqsave(&ndlp->lock, iflags); - ndlp->nlp_flag &= ~NLP_IN_DEV_LOSS; - spin_unlock_irqrestore(&ndlp->lock, iflags); lpfc_nlp_put(ndlp); return fcf_inuse; } From patchwork Thu Sep 12 23:24:44 2024 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Justin Tee X-Patchwork-Id: 13802763 Received: from mail-qk1-f182.google.com (mail-qk1-f182.google.com [209.85.222.182]) (using TLSv1.2 with cipher ECDHE-RSA-AES128-GCM-SHA256 (128/128 bits)) (No client certificate requested) by smtp.subspace.kernel.org (Postfix) with ESMTPS id 704B719C54B for ; Thu, 12 Sep 2024 23:10:06 +0000 (UTC) Authentication-Results: smtp.subspace.kernel.org; arc=none smtp.client-ip=209.85.222.182 ARC-Seal: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1726182608; cv=none; b=OvduhHE+kL/bEZRTEH2KEDioMu2OBlCVAlEyqlHFmnfJj6hrGtmmoRViwX1NVxZPueyaHQwbvoF8FcwXlStaki0kotzhHdoig5srgt0OwE8YDPA+HOEEeO85G6vil2D5wI9LfzNNNAGU9wbrjWZcWLIPCMFd4y2zTGjtQ3S9g9k= ARC-Message-Signature: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1726182608; c=relaxed/simple; bh=wrT9R21RbqGOWfhQJjIvM79ODjldw7ZoGgoGXBc6cKs=; h=From:To:Cc:Subject:Date:Message-Id:In-Reply-To:References: MIME-Version; b=kMpnI1/BHLFtxLckfY1l4aK20f7DIPD6Xe47mTRhRN8mc96X/fCbaJwDPRiYNn6ilr4vljJiSdYWV7nsRH3BdjW09ra5oxiDEAOqoKL3EPLCb4mz4gJ/wgbNQTQrVTMpBIttZCGlf4q2aVDm0U5jDttatKquvnb1t3eFjVNzAMw= ARC-Authentication-Results: i=1; smtp.subspace.kernel.org; dmarc=pass (p=none dis=none) header.from=gmail.com; spf=pass smtp.mailfrom=gmail.com; dkim=pass (2048-bit key) header.d=gmail.com header.i=@gmail.com header.b=DtlZQt+n; arc=none smtp.client-ip=209.85.222.182 Authentication-Results: smtp.subspace.kernel.org; dmarc=pass (p=none dis=none) header.from=gmail.com Authentication-Results: smtp.subspace.kernel.org; spf=pass smtp.mailfrom=gmail.com Authentication-Results: smtp.subspace.kernel.org; dkim=pass (2048-bit key) header.d=gmail.com header.i=@gmail.com header.b="DtlZQt+n" Received: by mail-qk1-f182.google.com with SMTP id af79cd13be357-7a99eee4a5bso119496085a.0 for ; Thu, 12 Sep 2024 16:10:06 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20230601; t=1726182605; x=1726787405; darn=vger.kernel.org; h=content-transfer-encoding:mime-version:references:in-reply-to :message-id:date:subject:cc:to:from:from:to:cc:subject:date :message-id:reply-to; bh=oEm3wL9fq4CaN2luBUiZEIPyqyW+nUso8gsao198O7E=; b=DtlZQt+nJh8BAMK+Er6x02bfL5UVvqvYshzzQQ5E76zcz3e/w/LXMa1L9qFcvpLcXl rYBexXQWiuC0QZUIRnDA9p5HhdykqSKi/xP0S1hb6qN7Ge8pNeYFd6MT6cTwVy/zVMS1 pw2xgLEJY6f1po11nD7RMBjrhTw8ClHIHJqk393pMB77hnNsuF1U26XY/QERXj5VvEh2 pGuxWn1+sIGMuC+rjN+cqtrWFLDHfaW0zy/6hDU9UCAjJBAgl2m5YLMWSeAAX+qV+f5U GbCVhMueVvFeCwvvtNFjF5OiQ4TnTLVrjpNv611YkpM2AKOHruvw4aq2tFlj76orm42t KqRw== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20230601; t=1726182605; x=1726787405; h=content-transfer-encoding:mime-version:references:in-reply-to :message-id:date:subject:cc:to:from:x-gm-message-state:from:to:cc :subject:date:message-id:reply-to; bh=oEm3wL9fq4CaN2luBUiZEIPyqyW+nUso8gsao198O7E=; b=BZCUCm27oXeHqqOCK/oC1OXZqcu3b/1BSqmsRmq26dpib3FvaW3XbVQayouGpF31GB DNsPT3AG51kbQKhkcTTdkK8DQ9m2eKmyy+8bGKdVTpEPYIfhj9mGjRSpSSX4ULyq5dWi 5gXwzIR1UWgi5IaomFLe0r52UiYTC+Tma8/X9Kw94Fd4pz4qsY8XqX1CVOHn/XtdaldZ 8byrAC+lkY5oik5OLVPTZ18YOHzsGS8qk4ozxnRG6mmMy9p++dOBlxY8w351CpwPaeTa WTQC7qnHG2wr13eDGK2i8ekiX8WAMjNL+9/iGfI37fKxhf4Zl1rTL3Q1l618ZYiRVdAn RnQw== X-Gm-Message-State: AOJu0YyVozdSEulrO1EvECQ5FlrKmfmJ7Dx+n24KcjjHmGzsXsJFt8Vp k6Y1Ej7SRMmANiZF2kkO9tbl8KI7REM87fpptEy9z1+eWRppQ7CBt0XnWQ== X-Google-Smtp-Source: AGHT+IEiHL8o/qPecGsePx2+Gl4pdTSsCNKo7hIw5erKdOru29XBK3BXpqe/SXSHYMTJC3qYPrXfww== X-Received: by 2002:a05:6214:5347:b0:6c5:60bd:2c8b with SMTP id 6a1803df08f44-6c5735a1681mr63729936d6.49.1726182605005; Thu, 12 Sep 2024 16:10:05 -0700 (PDT) Received: from dhcp-10-231-55-133.dhcp.broadcom.net ([192.19.223.252]) by smtp.gmail.com with ESMTPSA id 6a1803df08f44-6c534339a88sm59363136d6.50.2024.09.12.16.10.03 (version=TLS1_2 cipher=ECDHE-ECDSA-AES128-GCM-SHA256 bits=128/128); Thu, 12 Sep 2024 16:10:04 -0700 (PDT) From: Justin Tee To: linux-scsi@vger.kernel.org Cc: jsmart2021@gmail.com, justin.tee@broadcom.com, Justin Tee Subject: [PATCH 5/8] lpfc: Ensure DA_ID handling completion before deleting an NPIV instance Date: Thu, 12 Sep 2024 16:24:44 -0700 Message-Id: <20240912232447.45607-6-justintee8345@gmail.com> X-Mailer: git-send-email 2.38.0 In-Reply-To: <20240912232447.45607-1-justintee8345@gmail.com> References: <20240912232447.45607-1-justintee8345@gmail.com> Precedence: bulk X-Mailing-List: linux-scsi@vger.kernel.org List-Id: List-Subscribe: List-Unsubscribe: MIME-Version: 1.0 Deleting an NPIV instance requires all fabric ndlps to be released before an NPIV's resources can be torn down. Failure to release fabric ndlps beforehand opens kref imbalance race conditions. Fix by forcing the DA_ID to complete synchronously with usage of wait_queue. Signed-off-by: Justin Tee --- drivers/scsi/lpfc/lpfc_ct.c | 12 ++++++++++ drivers/scsi/lpfc/lpfc_disc.h | 7 ++++++ drivers/scsi/lpfc/lpfc_vport.c | 43 ++++++++++++++++++++++++++++------ 3 files changed, 55 insertions(+), 7 deletions(-) diff --git a/drivers/scsi/lpfc/lpfc_ct.c b/drivers/scsi/lpfc/lpfc_ct.c index 2dedd1493e5b..1e5db489a00c 100644 --- a/drivers/scsi/lpfc/lpfc_ct.c +++ b/drivers/scsi/lpfc/lpfc_ct.c @@ -1647,6 +1647,18 @@ lpfc_cmpl_ct(struct lpfc_hba *phba, struct lpfc_iocbq *cmdiocb, } out: + /* If the caller wanted a synchronous DA_ID completion, signal the + * wait obj and clear flag to reset the vport. + */ + if (ndlp->save_flags & NLP_WAIT_FOR_DA_ID) { + if (ndlp->da_id_waitq) + wake_up(ndlp->da_id_waitq); + } + + spin_lock_irq(&ndlp->lock); + ndlp->save_flags &= ~NLP_WAIT_FOR_DA_ID; + spin_unlock_irq(&ndlp->lock); + lpfc_ct_free_iocb(phba, cmdiocb); lpfc_nlp_put(ndlp); return; diff --git a/drivers/scsi/lpfc/lpfc_disc.h b/drivers/scsi/lpfc/lpfc_disc.h index f82615d87c4b..f5ae8cc15820 100644 --- a/drivers/scsi/lpfc/lpfc_disc.h +++ b/drivers/scsi/lpfc/lpfc_disc.h @@ -90,6 +90,8 @@ enum lpfc_nlp_save_flags { NLP_IN_RECOV_POST_DEV_LOSS = 0x1, /* wait for outstanding LOGO to cmpl */ NLP_WAIT_FOR_LOGO = 0x2, + /* wait for outstanding DA_ID to finish */ + NLP_WAIT_FOR_DA_ID = 0x4 }; struct lpfc_nodelist { @@ -159,7 +161,12 @@ struct lpfc_nodelist { uint32_t nvme_fb_size; /* NVME target's supported byte cnt */ #define NVME_FB_BIT_SHIFT 9 /* PRLI Rsp first burst in 512B units. */ uint32_t nlp_defer_did; + + /* These wait objects are NPIV specific. These IOs must complete + * synchronously. + */ wait_queue_head_t *logo_waitq; + wait_queue_head_t *da_id_waitq; }; struct lpfc_node_rrq { diff --git a/drivers/scsi/lpfc/lpfc_vport.c b/drivers/scsi/lpfc/lpfc_vport.c index 4439167a5188..7a4d4d8e2ad5 100644 --- a/drivers/scsi/lpfc/lpfc_vport.c +++ b/drivers/scsi/lpfc/lpfc_vport.c @@ -626,6 +626,7 @@ lpfc_vport_delete(struct fc_vport *fc_vport) struct Scsi_Host *shost = lpfc_shost_from_vport(vport); struct lpfc_hba *phba = vport->phba; int rc; + DECLARE_WAIT_QUEUE_HEAD_ONSTACK(waitq); if (vport->port_type == LPFC_PHYSICAL_PORT) { lpfc_printf_vlog(vport, KERN_ERR, LOG_TRACE_EVENT, @@ -679,21 +680,49 @@ lpfc_vport_delete(struct fc_vport *fc_vport) if (!ndlp) goto skip_logo; + /* Send the DA_ID and Fabric LOGO to cleanup the NPIV fabric entries. */ if (ndlp && ndlp->nlp_state == NLP_STE_UNMAPPED_NODE && phba->link_state >= LPFC_LINK_UP && phba->fc_topology != LPFC_TOPOLOGY_LOOP) { if (vport->cfg_enable_da_id) { - /* Send DA_ID and wait for a completion. */ + /* Send DA_ID and wait for a completion. This is best + * effort. If the DA_ID fails, likely the fabric will + * "leak" NportIDs but at least the driver issued the + * command. + */ + ndlp = lpfc_findnode_did(vport, NameServer_DID); + if (!ndlp) + goto issue_logo; + + spin_lock_irq(&ndlp->lock); + ndlp->da_id_waitq = &waitq; + ndlp->save_flags |= NLP_WAIT_FOR_DA_ID; + spin_unlock_irq(&ndlp->lock); + rc = lpfc_ns_cmd(vport, SLI_CTNS_DA_ID, 0, 0); - if (rc) { - lpfc_printf_log(vport->phba, KERN_WARNING, - LOG_VPORT, - "1829 CT command failed to " - "delete objects on fabric, " - "rc %d\n", rc); + if (!rc) { + wait_event_timeout(waitq, + !(ndlp->save_flags & NLP_WAIT_FOR_DA_ID), + msecs_to_jiffies(phba->fc_ratov * 2000)); } + + lpfc_printf_vlog(vport, KERN_INFO, LOG_VPORT | LOG_ELS, + "1829 DA_ID issue status %d. " + "SFlag x%x NState x%x, NFlag x%x " + "Rpi x%x\n", + rc, ndlp->save_flags, ndlp->nlp_state, + ndlp->nlp_flag, ndlp->nlp_rpi); + + /* Remove the waitq and save_flags. It no + * longer matters if the wake happened. + */ + spin_lock_irq(&ndlp->lock); + ndlp->da_id_waitq = NULL; + ndlp->save_flags &= ~NLP_WAIT_FOR_DA_ID; + spin_unlock_irq(&ndlp->lock); } +issue_logo: /* * If the vpi is not registered, then a valid FDISC doesn't * exist and there is no need for a ELS LOGO. Just cleanup From patchwork Thu Sep 12 23:24:45 2024 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Justin Tee X-Patchwork-Id: 13802764 Received: from mail-qv1-f54.google.com (mail-qv1-f54.google.com [209.85.219.54]) (using TLSv1.2 with cipher ECDHE-RSA-AES128-GCM-SHA256 (128/128 bits)) (No client certificate requested) by smtp.subspace.kernel.org (Postfix) with ESMTPS id 1ACA318891D for ; Thu, 12 Sep 2024 23:10:07 +0000 (UTC) Authentication-Results: smtp.subspace.kernel.org; arc=none smtp.client-ip=209.85.219.54 ARC-Seal: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1726182609; cv=none; b=e/POuSUtoLtWMmRPL8pL48dkK00hvA9GzANN3T0Zr8AKf81BdksuGIc7ZqilYe14ZvNBMAjig2I+zeXr5eErpzDmiFhlhPq2bmdqwTG9boWc8H8q+Hv7f9oHVpKuinE34mNiIyqEo+uIC/5wuxRSVaPB+TWmzVtR/knPu3smM1E= ARC-Message-Signature: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1726182609; c=relaxed/simple; bh=wMpDmxBHytG7Jf1csBBM0ji4ieB0FL303AnK2i9amQg=; h=From:To:Cc:Subject:Date:Message-Id:In-Reply-To:References: MIME-Version; b=S6W+LLuX9p6lovO9qhWEr66Mxz6U4aQsKfZB5hUjsjcx/Ws56NZJ5kAwAUYfXFTdK6Wkl0ORZmXW34KdQWUeEIFiDphDvwJ/W0voUZ3LNsVZlNdsHbwwJkC+lI0IsxkW7E3TcRElEWvQVajiYiTmNOBlkmLU9REZD19CHek3AdY= ARC-Authentication-Results: i=1; smtp.subspace.kernel.org; dmarc=pass (p=none dis=none) header.from=gmail.com; spf=pass smtp.mailfrom=gmail.com; dkim=pass (2048-bit key) header.d=gmail.com header.i=@gmail.com header.b=k0ZhgEGG; arc=none smtp.client-ip=209.85.219.54 Authentication-Results: smtp.subspace.kernel.org; dmarc=pass (p=none dis=none) header.from=gmail.com Authentication-Results: smtp.subspace.kernel.org; spf=pass smtp.mailfrom=gmail.com Authentication-Results: smtp.subspace.kernel.org; dkim=pass (2048-bit key) header.d=gmail.com header.i=@gmail.com header.b="k0ZhgEGG" Received: by mail-qv1-f54.google.com with SMTP id 6a1803df08f44-6c54a5fbceeso2407916d6.2 for ; Thu, 12 Sep 2024 16:10:07 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20230601; t=1726182607; x=1726787407; darn=vger.kernel.org; h=content-transfer-encoding:mime-version:references:in-reply-to :message-id:date:subject:cc:to:from:from:to:cc:subject:date :message-id:reply-to; bh=hYyNrz+TlE5htw9JW3j3Ef1zlHJX86IWpVATX9R7INE=; b=k0ZhgEGGd6dUqYdUCPIwDIELtp/x4pIEpj/FXsvvBz+6D00cMOvu8Jd3yMR5mxC2ul J6ZU6HfAzRWYEW62WFzIMGvRkr9tKDHMzKVex+E5Fg4Sluxetp7r5qo/OXUWY1/w5fH2 wVoik9mo+CXsKy+6zGnBALSXb7IMgnRR2E2YG+hW0JzbynWhg0S2Ajf8oQKk8uRYZmvz 48wpTfbIS0prm5mnRy/qWOcnp0oKx57I9ueMmm8miWnAxg993b6e7dnzg7yoU60UpOWk nnHt1eGVaEC33FGi/juRpFv41A/BjmXd6gzCW4pjh3PoonoxUMcl8aQQkxHtqnwtyVl8 69jA== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20230601; t=1726182607; x=1726787407; h=content-transfer-encoding:mime-version:references:in-reply-to :message-id:date:subject:cc:to:from:x-gm-message-state:from:to:cc :subject:date:message-id:reply-to; bh=hYyNrz+TlE5htw9JW3j3Ef1zlHJX86IWpVATX9R7INE=; b=KJSU0kBoJvkt+VyeysdOwWUPpcBjvd00E4tMal4E9/BGFXK89CaI3w+naWsWdVRGif CZ4eYiNVL5j1mNy3AIpvKhK92SJQ+TKNw0vPDcHMnN6eICOPZ8fKxkqN4KycNTTYTwz/ EapXVBVfvY6IBUiLRQY05I0Wid6JMbY7kP3MiY4GYiyiKd5VPF4UQXnJFRNkCP2qrAYi 2o8DYMSnrE916gZEY2QqAffHypxrBoaeMUw8gGgDTbdEdjHqeLv3uoxdOBgTRV8dnIts JK64c8xF9S/OLlQUcJowg2dCKU+gqg8ypEVZM03xFuJhilmmx6rneizZS7azr6Yvr/AH KqbQ== X-Gm-Message-State: AOJu0YxMX/3Ylaw+GIedetCfFPrXzfGfzz/NlMLdg+ptq0xhSGzewwst 7YIfw4011ArE89WOorZCHYxeqR/pvhZbJKgNxF7Tp2sc5POLHhLpQY5Lmw== X-Google-Smtp-Source: AGHT+IGOsnW8AIDMV05qjSFQPOnnLxV1EPBKmnkbmVo88+GFPLgDlm6J5EOtdLWhtVomnKV93bwMSg== X-Received: by 2002:a05:6214:3d8c:b0:6c5:2a13:b8e1 with SMTP id 6a1803df08f44-6c57e132c4emr18052306d6.43.1726182606796; Thu, 12 Sep 2024 16:10:06 -0700 (PDT) Received: from dhcp-10-231-55-133.dhcp.broadcom.net ([192.19.223.252]) by smtp.gmail.com with ESMTPSA id 6a1803df08f44-6c534339a88sm59363136d6.50.2024.09.12.16.10.05 (version=TLS1_2 cipher=ECDHE-ECDSA-AES128-GCM-SHA256 bits=128/128); Thu, 12 Sep 2024 16:10:06 -0700 (PDT) From: Justin Tee To: linux-scsi@vger.kernel.org Cc: jsmart2021@gmail.com, justin.tee@broadcom.com, Justin Tee Subject: [PATCH 6/8] lpfc: Revise TRACE_EVENT log flag severities from KERN_ERR to KERN_WARNING Date: Thu, 12 Sep 2024 16:24:45 -0700 Message-Id: <20240912232447.45607-7-justintee8345@gmail.com> X-Mailer: git-send-email 2.38.0 In-Reply-To: <20240912232447.45607-1-justintee8345@gmail.com> References: <20240912232447.45607-1-justintee8345@gmail.com> Precedence: bulk X-Mailing-List: linux-scsi@vger.kernel.org List-Id: List-Subscribe: List-Unsubscribe: MIME-Version: 1.0 Revise certain log messages marked as KERN_ERR LOG_TRACE_EVENT to KERN_WARNING and use the lpfc_vlog_msg macro to still log the event. The benefit is that events of interest are still logged and the entire trace buffer is not dumped with extraneous logging information when using default lpfc_log_verbose driver parameter settings. Also, delete the keyword "fail" from such log messages as they aren't really causes for concern. The log messages are more for warnings to a SAN admin about SAN activity. Signed-off-by: Justin Tee --- drivers/scsi/lpfc/lpfc_ct.c | 10 +-- drivers/scsi/lpfc/lpfc_els.c | 125 +++++++++++++++++------------------ 2 files changed, 64 insertions(+), 71 deletions(-) diff --git a/drivers/scsi/lpfc/lpfc_ct.c b/drivers/scsi/lpfc/lpfc_ct.c index 1e5db489a00c..134bc96dd134 100644 --- a/drivers/scsi/lpfc/lpfc_ct.c +++ b/drivers/scsi/lpfc/lpfc_ct.c @@ -1572,8 +1572,8 @@ lpfc_cmpl_ct_cmd_gft_id(struct lpfc_hba *phba, struct lpfc_iocbq *cmdiocb, } } } else - lpfc_printf_vlog(vport, KERN_ERR, LOG_TRACE_EVENT, - "3065 GFT_ID failed x%08x\n", ulp_status); + lpfc_vlog_msg(vport, KERN_WARNING, LOG_DISCOVERY, + "3065 GFT_ID status x%08x\n", ulp_status); out: lpfc_ct_free_iocb(phba, cmdiocb); @@ -2258,7 +2258,7 @@ lpfc_cmpl_ct_disc_fdmi(struct lpfc_hba *phba, struct lpfc_iocbq *cmdiocb, } lpfc_printf_vlog(vport, KERN_INFO, LOG_DISCOVERY, - "0229 FDMI cmd %04x failed, latt = %d " + "0229 FDMI cmd %04x latt = %d " "ulp_status: x%x, rid x%x\n", be16_to_cpu(fdmi_cmd), latt, ulp_status, ulp_word4); @@ -2275,9 +2275,9 @@ lpfc_cmpl_ct_disc_fdmi(struct lpfc_hba *phba, struct lpfc_iocbq *cmdiocb, /* Check for a CT LS_RJT response */ cmd = be16_to_cpu(fdmi_cmd); if (be16_to_cpu(fdmi_rsp) == SLI_CT_RESPONSE_FS_RJT) { - /* FDMI rsp failed */ + /* Log FDMI reject */ lpfc_printf_vlog(vport, KERN_INFO, LOG_DISCOVERY | LOG_ELS, - "0220 FDMI cmd failed FS_RJT Data: x%x", cmd); + "0220 FDMI cmd FS_RJT Data: x%x", cmd); /* Should we fallback to FDMI-2 / FDMI-1 ? */ switch (cmd) { diff --git a/drivers/scsi/lpfc/lpfc_els.c b/drivers/scsi/lpfc/lpfc_els.c index 7219b1ada1ea..d737b897ddd8 100644 --- a/drivers/scsi/lpfc/lpfc_els.c +++ b/drivers/scsi/lpfc/lpfc_els.c @@ -979,7 +979,7 @@ lpfc_cmpl_els_flogi(struct lpfc_hba *phba, struct lpfc_iocbq *cmdiocb, phba->fcoe_cvl_eventtag_attn = phba->fcoe_cvl_eventtag; lpfc_printf_log(phba, KERN_WARNING, LOG_FIP | LOG_ELS, - "2611 FLOGI failed on FCF (x%x), " + "2611 FLOGI FCF (x%x), " "status:x%x/x%x, tmo:x%x, perform " "roundrobin FCF failover\n", phba->fcf.current_rec.fcf_indx, @@ -997,11 +997,11 @@ lpfc_cmpl_els_flogi(struct lpfc_hba *phba, struct lpfc_iocbq *cmdiocb, if (!(ulp_status == IOSTAT_LOCAL_REJECT && ((ulp_word4 & IOERR_PARAM_MASK) == IOERR_LOOP_OPEN_FAILURE))) - lpfc_printf_vlog(vport, KERN_ERR, LOG_TRACE_EVENT, - "2858 FLOGI failure Status:x%x/x%x TMO" - ":x%x Data x%lx x%x\n", - ulp_status, ulp_word4, tmo, - phba->hba_flag, phba->fcf.fcf_flag); + lpfc_vlog_msg(vport, KERN_WARNING, LOG_ELS, + "2858 FLOGI Status:x%x/x%x TMO" + ":x%x Data x%lx x%x\n", + ulp_status, ulp_word4, tmo, + phba->hba_flag, phba->fcf.fcf_flag); /* Check for retry */ if (lpfc_els_retry(phba, cmdiocb, rspiocb)) { @@ -1023,7 +1023,7 @@ lpfc_cmpl_els_flogi(struct lpfc_hba *phba, struct lpfc_iocbq *cmdiocb, lpfc_nlp_put(ndlp); lpfc_printf_vlog(vport, KERN_WARNING, LOG_ELS, - "0150 FLOGI failure Status:x%x/x%x " + "0150 FLOGI Status:x%x/x%x " "xri x%x TMO:x%x refcnt %d\n", ulp_status, ulp_word4, cmdiocb->sli4_xritag, tmo, kref_read(&ndlp->kref)); @@ -1032,11 +1032,11 @@ lpfc_cmpl_els_flogi(struct lpfc_hba *phba, struct lpfc_iocbq *cmdiocb, if (!(ulp_status == IOSTAT_LOCAL_REJECT && ((ulp_word4 & IOERR_PARAM_MASK) == IOERR_LOOP_OPEN_FAILURE))) { - /* FLOGI failure */ - lpfc_printf_vlog(vport, KERN_ERR, LOG_TRACE_EVENT, - "0100 FLOGI failure Status:x%x/x%x " - "TMO:x%x\n", - ulp_status, ulp_word4, tmo); + /* Warn FLOGI status */ + lpfc_vlog_msg(vport, KERN_WARNING, LOG_ELS, + "0100 FLOGI Status:x%x/x%x " + "TMO:x%x\n", + ulp_status, ulp_word4, tmo); goto flogifail; } @@ -1964,16 +1964,16 @@ lpfc_cmpl_els_rrq(struct lpfc_hba *phba, struct lpfc_iocbq *cmdiocb, if (ulp_status) { /* Check for retry */ - /* RRQ failed Don't print the vport to vport rjts */ + /* Warn RRQ status Don't print the vport to vport rjts */ if (ulp_status != IOSTAT_LS_RJT || (((ulp_word4) >> 16 != LSRJT_INVALID_CMD) && ((ulp_word4) >> 16 != LSRJT_UNABLE_TPC)) || (phba)->pport->cfg_log_verbose & LOG_ELS) - lpfc_printf_vlog(vport, KERN_ERR, LOG_TRACE_EVENT, - "2881 RRQ failure DID:%06X Status:" - "x%x/x%x\n", - ndlp->nlp_DID, ulp_status, - ulp_word4); + lpfc_vlog_msg(vport, KERN_WARNING, LOG_ELS, + "2881 RRQ DID:%06X Status:" + "x%x/x%x\n", + ndlp->nlp_DID, ulp_status, + ulp_word4); } lpfc_clr_rrq_active(phba, rrq->xritag, rrq); @@ -2077,16 +2077,16 @@ lpfc_cmpl_els_plogi(struct lpfc_hba *phba, struct lpfc_iocbq *cmdiocb, } goto out; } - /* PLOGI failed Don't print the vport to vport rjts */ + /* Warn PLOGI status Don't print the vport to vport rjts */ if (ulp_status != IOSTAT_LS_RJT || (((ulp_word4) >> 16 != LSRJT_INVALID_CMD) && ((ulp_word4) >> 16 != LSRJT_UNABLE_TPC)) || (phba)->pport->cfg_log_verbose & LOG_ELS) - lpfc_printf_vlog(vport, KERN_ERR, LOG_TRACE_EVENT, - "2753 PLOGI failure DID:%06X " - "Status:x%x/x%x\n", - ndlp->nlp_DID, ulp_status, - ulp_word4); + lpfc_vlog_msg(vport, KERN_WARNING, LOG_ELS, + "2753 PLOGI DID:%06X " + "Status:x%x/x%x\n", + ndlp->nlp_DID, ulp_status, + ulp_word4); /* Do not call DSM for lpfc_els_abort'ed ELS cmds */ if (!lpfc_error_lost_link(vport, ulp_status, ulp_word4)) @@ -2323,7 +2323,6 @@ lpfc_cmpl_els_prli(struct lpfc_hba *phba, struct lpfc_iocbq *cmdiocb, struct lpfc_vport *vport = cmdiocb->vport; struct lpfc_nodelist *ndlp; char *mode; - u32 loglevel; u32 ulp_status; u32 ulp_word4; bool release_node = false; @@ -2372,17 +2371,14 @@ lpfc_cmpl_els_prli(struct lpfc_hba *phba, struct lpfc_iocbq *cmdiocb, * could be expected. */ if (test_bit(FC_FABRIC, &vport->fc_flag) || - vport->cfg_enable_fc4_type != LPFC_ENABLE_BOTH) { - mode = KERN_ERR; - loglevel = LOG_TRACE_EVENT; - } else { + vport->cfg_enable_fc4_type != LPFC_ENABLE_BOTH) + mode = KERN_WARNING; + else mode = KERN_INFO; - loglevel = LOG_ELS; - } - /* PRLI failed */ - lpfc_printf_vlog(vport, mode, loglevel, - "2754 PRLI failure DID:%06X Status:x%x/x%x, " + /* Warn PRLI status */ + lpfc_printf_vlog(vport, mode, LOG_ELS, + "2754 PRLI DID:%06X Status:x%x/x%x, " "data: x%x x%x x%x\n", ndlp->nlp_DID, ulp_status, ulp_word4, ndlp->nlp_state, @@ -2854,11 +2850,11 @@ lpfc_cmpl_els_adisc(struct lpfc_hba *phba, struct lpfc_iocbq *cmdiocb, } goto out; } - /* ADISC failed */ - lpfc_printf_vlog(vport, KERN_ERR, LOG_TRACE_EVENT, - "2755 ADISC failure DID:%06X Status:x%x/x%x\n", - ndlp->nlp_DID, ulp_status, - ulp_word4); + /* Warn ADISC status */ + lpfc_vlog_msg(vport, KERN_WARNING, LOG_ELS, + "2755 ADISC DID:%06X Status:x%x/x%x\n", + ndlp->nlp_DID, ulp_status, + ulp_word4); lpfc_disc_state_machine(vport, ndlp, cmdiocb, NLP_EVT_CMPL_ADISC); @@ -3045,12 +3041,12 @@ lpfc_cmpl_els_logo(struct lpfc_hba *phba, struct lpfc_iocbq *cmdiocb, * discovery. The PLOGI will retry. */ if (ulp_status) { - /* LOGO failed */ - lpfc_printf_vlog(vport, KERN_ERR, LOG_TRACE_EVENT, - "2756 LOGO failure, No Retry DID:%06X " - "Status:x%x/x%x\n", - ndlp->nlp_DID, ulp_status, - ulp_word4); + /* Warn LOGO status */ + lpfc_vlog_msg(vport, KERN_WARNING, LOG_ELS, + "2756 LOGO, No Retry DID:%06X " + "Status:x%x/x%x\n", + ndlp->nlp_DID, ulp_status, + ulp_word4); if (lpfc_error_lost_link(vport, ulp_status, ulp_word4)) skip_recovery = 1; @@ -4837,11 +4833,10 @@ lpfc_els_retry(struct lpfc_hba *phba, struct lpfc_iocbq *cmdiocb, if ((phba->sli3_options & LPFC_SLI3_NPIV_ENABLED) && (cmd == ELS_CMD_FDISC) && (stat.un.b.lsRjtRsnCodeExp == LSEXP_OUT_OF_RESOURCE)){ - lpfc_printf_vlog(vport, KERN_ERR, - LOG_TRACE_EVENT, - "0125 FDISC Failed (x%x). " - "Fabric out of resources\n", - stat.un.lsRjtError); + lpfc_vlog_msg(vport, KERN_WARNING, LOG_ELS, + "0125 FDISC (x%x). " + "Fabric out of resources\n", + stat.un.lsRjtError); lpfc_vport_set_state(vport, FC_VPORT_NO_FABRIC_RSCS); } @@ -4877,11 +4872,10 @@ lpfc_els_retry(struct lpfc_hba *phba, struct lpfc_iocbq *cmdiocb, LSEXP_NOTHING_MORE) { vport->fc_sparam.cmn.bbRcvSizeMsb &= 0xf; retry = 1; - lpfc_printf_vlog(vport, KERN_ERR, - LOG_TRACE_EVENT, - "0820 FLOGI Failed (x%x). " - "BBCredit Not Supported\n", - stat.un.lsRjtError); + lpfc_vlog_msg(vport, KERN_WARNING, LOG_ELS, + "0820 FLOGI (x%x). " + "BBCredit Not Supported\n", + stat.un.lsRjtError); } break; @@ -4891,11 +4885,10 @@ lpfc_els_retry(struct lpfc_hba *phba, struct lpfc_iocbq *cmdiocb, ((stat.un.b.lsRjtRsnCodeExp == LSEXP_INVALID_PNAME) || (stat.un.b.lsRjtRsnCodeExp == LSEXP_INVALID_NPORT_ID)) ) { - lpfc_printf_vlog(vport, KERN_ERR, - LOG_TRACE_EVENT, - "0122 FDISC Failed (x%x). " - "Fabric Detected Bad WWN\n", - stat.un.lsRjtError); + lpfc_vlog_msg(vport, KERN_WARNING, LOG_ELS, + "0122 FDISC (x%x). " + "Fabric Detected Bad WWN\n", + stat.un.lsRjtError); lpfc_vport_set_state(vport, FC_VPORT_FABRIC_REJ_WWN); } @@ -5355,8 +5348,8 @@ lpfc_cmpl_els_rsp(struct lpfc_hba *phba, struct lpfc_iocbq *cmdiocb, u32 ulp_status, ulp_word4, tmo, did, iotag; if (!vport) { - lpfc_printf_log(phba, KERN_ERR, LOG_TRACE_EVENT, - "3177 ELS response failed\n"); + lpfc_printf_log(phba, KERN_WARNING, LOG_ELS, + "3177 null vport in ELS rsp\n"); goto out; } if (cmdiocb->context_un.mbox) @@ -11328,10 +11321,10 @@ lpfc_cmpl_els_fdisc(struct lpfc_hba *phba, struct lpfc_iocbq *cmdiocb, /* Check for retry */ if (lpfc_els_retry(phba, cmdiocb, rspiocb)) goto out; - /* FDISC failed */ - lpfc_printf_vlog(vport, KERN_ERR, LOG_TRACE_EVENT, - "0126 FDISC failed. (x%x/x%x)\n", - ulp_status, ulp_word4); + /* Warn FDISC status */ + lpfc_vlog_msg(vport, KERN_WARNING, LOG_ELS, + "0126 FDISC cmpl status: x%x/x%x)\n", + ulp_status, ulp_word4); goto fdisc_failed; } From patchwork Thu Sep 12 23:24:46 2024 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Justin Tee X-Patchwork-Id: 13802765 Received: from mail-qv1-f41.google.com (mail-qv1-f41.google.com [209.85.219.41]) (using TLSv1.2 with cipher ECDHE-RSA-AES128-GCM-SHA256 (128/128 bits)) (No client certificate requested) by smtp.subspace.kernel.org (Postfix) with ESMTPS id CF39318891D for ; Thu, 12 Sep 2024 23:10:09 +0000 (UTC) Authentication-Results: smtp.subspace.kernel.org; arc=none smtp.client-ip=209.85.219.41 ARC-Seal: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1726182612; cv=none; b=PRr5agEUcVQPSR2fBaio6EqDEkSRFJ+ov+eQVyYMytGQ9OgtsMkuEE9URime+L8DIPXhvfQz5FjyLmiZmkM+QYUbwO5bvDKT5qA3VCGpwuGlqMwqJ219fp7loSfKcZ8FFYZscGuEkJEwnx+7RWrWyTFEeYFCdfv8t/lnNNaZvdk= ARC-Message-Signature: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1726182612; c=relaxed/simple; bh=nE4k60CmuQyDPVZ3PtNsJ1THBUyCGg7Y2PlYLX8EG7Y=; h=From:To:Cc:Subject:Date:Message-Id:In-Reply-To:References: MIME-Version; b=gsqcdFYz18JvRRCES6Dy4pwure+Qlei7/e/772sf9xMQcOONtQUgfruk63DiKOVYaeY54zFBgjEVM6alka/MgeLyLSsMTBHe6xvAWbi7e3Ai62PwBggR/0dhmMsmo3RajbHxCwC7s9YnqQCvJGJzNgiJcVMQsRoPTZ/WQLl2Uno= ARC-Authentication-Results: i=1; smtp.subspace.kernel.org; dmarc=pass (p=none dis=none) header.from=gmail.com; spf=pass smtp.mailfrom=gmail.com; dkim=pass (2048-bit key) header.d=gmail.com header.i=@gmail.com header.b=l0IBf+2a; arc=none smtp.client-ip=209.85.219.41 Authentication-Results: smtp.subspace.kernel.org; dmarc=pass (p=none dis=none) header.from=gmail.com Authentication-Results: smtp.subspace.kernel.org; spf=pass smtp.mailfrom=gmail.com Authentication-Results: smtp.subspace.kernel.org; dkim=pass (2048-bit key) header.d=gmail.com header.i=@gmail.com header.b="l0IBf+2a" Received: by mail-qv1-f41.google.com with SMTP id 6a1803df08f44-6c54a5fbceeso2408106d6.2 for ; Thu, 12 Sep 2024 16:10:09 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20230601; t=1726182608; x=1726787408; darn=vger.kernel.org; h=content-transfer-encoding:mime-version:references:in-reply-to :message-id:date:subject:cc:to:from:from:to:cc:subject:date :message-id:reply-to; bh=YeSPXDPCK8PcJNpcvq5gGn4zSb8CWor6gd7+J/tuRIE=; b=l0IBf+2a5Ba6UdaX73zLOcbn2+U7vVs35Kp8dIPCt/BJdSkIqyphdkoXLoCM+wMb37 PxmE3SPco/sdmMECRrF3RogejKiodvJevVq0yXUgjh9RptgB6+ZAuriuEPdZ1K97m+Qb 3zfeUY1ZcaN6qXMYKAokW7nArCesKIFSadIQTZ2xfoC212LA2IWNSD0HZsdxhbnnLEmE jwvkt70fOU5sqD/77BSD5xODtXyzjhCuDRLSzMV633s9pjyRxfztl8x3EmQ6H+9pPTyk urfxySz3c2R1+UN+K3o9CwxsEt6OYXuTNidgACpPW+ledCALQf4hVT5/LxWlZtoKwYYc spHw== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20230601; t=1726182608; x=1726787408; h=content-transfer-encoding:mime-version:references:in-reply-to :message-id:date:subject:cc:to:from:x-gm-message-state:from:to:cc :subject:date:message-id:reply-to; bh=YeSPXDPCK8PcJNpcvq5gGn4zSb8CWor6gd7+J/tuRIE=; b=OZdJrzpAsay/QGrVS7NiiyFSqT2Di8r9OqJSZUe4NeMU6140Awq6JA+QNaHoj9dPtI 8U6jWrevM+QnJRH9C/jNSNXPbPzSJVEMFX29iktFNszD8tUjbozHQjs6My1nyjgV+IGr az3EWFndQMR0WHeSfqYvwg+D7JlJay1MSjafhQvVBNgEcwWTdHQ1Q+z1IMxRwM+7Xx3q B4etKaXVyqgwYecDBNI8XMd1X1F5O3UYHxNA+pI5b1IP3FVl0pco02fbI02nhSuu+Uf3 qIcy6ox5CWW9IBNHjRpQ+cLHsb6hBzwAOqmkFdfvaV0W+Mkk0pBfVIxcmMvhhtpmrr4v ehPQ== X-Gm-Message-State: AOJu0YzENzAH6M88fPwexcdx+eHvViLnBgA+ySdDtJZfnMBjP9C0yULC SPZOADDlfIbKI090PFekyeuW/BDo2ExrKUeLf4znDlAOhaLFSRDoouuFjw== X-Google-Smtp-Source: AGHT+IFwfHdfqWKOKPvLL0nWEmJF5Qxpz7ZTaDiYrECW19DIhT89hKTvj3eR0/ZQEQaA4q8N++Dgkg== X-Received: by 2002:a05:6214:2f0f:b0:6c5:55bc:2705 with SMTP id 6a1803df08f44-6c57df773a1mr15394756d6.6.1726182608549; Thu, 12 Sep 2024 16:10:08 -0700 (PDT) Received: from dhcp-10-231-55-133.dhcp.broadcom.net ([192.19.223.252]) by smtp.gmail.com with ESMTPSA id 6a1803df08f44-6c534339a88sm59363136d6.50.2024.09.12.16.10.07 (version=TLS1_2 cipher=ECDHE-ECDSA-AES128-GCM-SHA256 bits=128/128); Thu, 12 Sep 2024 16:10:08 -0700 (PDT) From: Justin Tee To: linux-scsi@vger.kernel.org Cc: jsmart2021@gmail.com, justin.tee@broadcom.com, Justin Tee Subject: [PATCH 7/8] lpfc: Support loopback tests with VMID enabled Date: Thu, 12 Sep 2024 16:24:46 -0700 Message-Id: <20240912232447.45607-8-justintee8345@gmail.com> X-Mailer: git-send-email 2.38.0 In-Reply-To: <20240912232447.45607-1-justintee8345@gmail.com> References: <20240912232447.45607-1-justintee8345@gmail.com> Precedence: bulk X-Mailing-List: linux-scsi@vger.kernel.org List-Id: List-Subscribe: List-Unsubscribe: MIME-Version: 1.0 The VMID feature adds an extra application services header to each frame. As such, the loopback test path is updated to accommodate the extra application header. Changes include filling in APPID and WQES bit fields for XMIT_SEQUENCE64 commands, a special loopback source APPID for verifying received loopback data matches what is sent, and increasing ELS WQ size to accommodate the APPID field in loopback test mode. Signed-off-by: Justin Tee --- drivers/scsi/lpfc/lpfc_bsg.c | 3 +++ drivers/scsi/lpfc/lpfc_hw.h | 21 +++++++++++++++++++ drivers/scsi/lpfc/lpfc_init.c | 11 ++++++++-- drivers/scsi/lpfc/lpfc_sli.c | 39 +++++++++++++++++++++++++++++++++-- 4 files changed, 70 insertions(+), 4 deletions(-) diff --git a/drivers/scsi/lpfc/lpfc_bsg.c b/drivers/scsi/lpfc/lpfc_bsg.c index 4156419c52c7..8738c1b0e388 100644 --- a/drivers/scsi/lpfc/lpfc_bsg.c +++ b/drivers/scsi/lpfc/lpfc_bsg.c @@ -3208,6 +3208,9 @@ lpfc_bsg_diag_loopback_run(struct bsg_job *job) cmdiocbq->num_bdes = num_bde; cmdiocbq->cmd_flag |= LPFC_IO_LIBDFC; cmdiocbq->cmd_flag |= LPFC_IO_LOOPBACK; + if (phba->cfg_vmid_app_header) + cmdiocbq->cmd_flag |= LPFC_IO_VMID; + cmdiocbq->vport = phba->pport; cmdiocbq->cmd_cmpl = NULL; cmdiocbq->bpl_dmabuf = txbmp; diff --git a/drivers/scsi/lpfc/lpfc_hw.h b/drivers/scsi/lpfc/lpfc_hw.h index 2108b4cb7815..d5c15742f7f2 100644 --- a/drivers/scsi/lpfc/lpfc_hw.h +++ b/drivers/scsi/lpfc/lpfc_hw.h @@ -561,6 +561,27 @@ struct fc_vft_header { #include +/* + * Application Header + */ +struct fc_app_header { + uint32_t dst_app_id; + uint32_t src_app_id; +#define LOOPBACK_SRC_APPID 0x4321 + uint32_t word2; + uint32_t word3; +}; + +/* + * dfctl optional header definition + */ +enum lpfc_fc_dfctl { + LPFC_FC_NO_DEVICE_HEADER, + LPFC_FC_16B_DEVICE_HEADER, + LPFC_FC_32B_DEVICE_HEADER, + LPFC_FC_64B_DEVICE_HEADER, +}; + /* * Extended Link Service LS_COMMAND codes (Payload Word 0) */ diff --git a/drivers/scsi/lpfc/lpfc_init.c b/drivers/scsi/lpfc/lpfc_init.c index 0c1404dc5f3b..48a3dfdd51d3 100644 --- a/drivers/scsi/lpfc/lpfc_init.c +++ b/drivers/scsi/lpfc/lpfc_init.c @@ -10451,6 +10451,7 @@ lpfc_sli4_queue_create(struct lpfc_hba *phba) struct lpfc_vector_map_info *cpup; struct lpfc_vector_map_info *eqcpup; struct lpfc_eq_intr_info *eqi; + u32 wqesize; /* * Create HBA Record arrays. @@ -10670,9 +10671,15 @@ lpfc_sli4_queue_create(struct lpfc_hba *phba) * Create ELS Work Queues */ - /* Create slow-path ELS Work Queue */ + /* + * Create slow-path ELS Work Queue. + * Increase the ELS WQ size when WQEs contain an embedded cdb + */ + wqesize = (phba->fcp_embed_io) ? + LPFC_WQE128_SIZE : phba->sli4_hba.wq_esize; + qdesc = lpfc_sli4_queue_alloc(phba, LPFC_DEFAULT_PAGE_SIZE, - phba->sli4_hba.wq_esize, + wqesize, phba->sli4_hba.wq_ecount, cpu); if (!qdesc) { lpfc_printf_log(phba, KERN_ERR, LOG_TRACE_EVENT, diff --git a/drivers/scsi/lpfc/lpfc_sli.c b/drivers/scsi/lpfc/lpfc_sli.c index bb5fd3322273..a44afb84cd3d 100644 --- a/drivers/scsi/lpfc/lpfc_sli.c +++ b/drivers/scsi/lpfc/lpfc_sli.c @@ -11093,9 +11093,17 @@ __lpfc_sli_prep_xmit_seq64_s4(struct lpfc_iocbq *cmdiocbq, /* Word 9 */ bf_set(wqe_rcvoxid, &wqe->xmit_sequence.wqe_com, ox_id); - /* Word 12 */ - if (cmdiocbq->cmd_flag & (LPFC_IO_LIBDFC | LPFC_IO_LOOPBACK)) + if (cmdiocbq->cmd_flag & (LPFC_IO_LIBDFC | LPFC_IO_LOOPBACK)) { + /* Word 10 */ + if (cmdiocbq->cmd_flag & LPFC_IO_VMID) { + bf_set(wqe_appid, &wqe->xmit_sequence.wqe_com, 1); + bf_set(wqe_wqes, &wqe->xmit_sequence.wqe_com, 1); + wqe->words[31] = LOOPBACK_SRC_APPID; + } + + /* Word 12 */ wqe->xmit_sequence.xmit_len = full_size; + } else wqe->xmit_sequence.xmit_len = wqe->xmit_sequence.bde.tus.f.bdeSize; @@ -18434,6 +18442,7 @@ lpfc_fc_frame_check(struct lpfc_hba *phba, struct fc_frame_header *fc_hdr) { /* make rctl_names static to save stack space */ struct fc_vft_header *fc_vft_hdr; + struct fc_app_header *fc_app_hdr; uint32_t *header = (uint32_t *) fc_hdr; #define FC_RCTL_MDS_DIAGS 0xF4 @@ -18489,6 +18498,32 @@ lpfc_fc_frame_check(struct lpfc_hba *phba, struct fc_frame_header *fc_hdr) goto drop; } + if (unlikely(phba->link_flag == LS_LOOPBACK_MODE && + phba->cfg_vmid_app_header)) { + /* Application header is 16B device header */ + if (fc_hdr->fh_df_ctl & LPFC_FC_16B_DEVICE_HEADER) { + fc_app_hdr = (struct fc_app_header *) (fc_hdr + 1); + if (be32_to_cpu(fc_app_hdr->src_app_id) != + LOOPBACK_SRC_APPID) { + lpfc_printf_log(phba, KERN_WARNING, + LOG_ELS | LOG_LIBDFC, + "1932 Loopback src app id " + "not matched, app_id:x%x\n", + be32_to_cpu(fc_app_hdr->src_app_id)); + + goto drop; + } + } else { + lpfc_printf_log(phba, KERN_WARNING, + LOG_ELS | LOG_LIBDFC, + "1933 Loopback df_ctl bit not set, " + "df_ctl:x%x\n", + fc_hdr->fh_df_ctl); + + goto drop; + } + } + lpfc_printf_log(phba, KERN_INFO, LOG_ELS, "2538 Received frame rctl:x%x, type:x%x, " "frame Data:%08x %08x %08x %08x %08x %08x %08x\n", From patchwork Thu Sep 12 23:24:47 2024 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Justin Tee X-Patchwork-Id: 13802766 Received: from mail-qk1-f177.google.com (mail-qk1-f177.google.com [209.85.222.177]) (using TLSv1.2 with cipher ECDHE-RSA-AES128-GCM-SHA256 (128/128 bits)) (No client certificate requested) by smtp.subspace.kernel.org (Postfix) with ESMTPS id 5E21A1C2DDC for ; Thu, 12 Sep 2024 23:10:11 +0000 (UTC) Authentication-Results: smtp.subspace.kernel.org; arc=none smtp.client-ip=209.85.222.177 ARC-Seal: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1726182612; cv=none; b=e8FK7bQoUy7LtZgbIRiTTIrEiKNS/rZ9shyn/zx8vmE/VKCbOUty/VSlyv/6ttW5lMYYhoKPvddlWOvwzmo+ajxN9qfRDg77k2kTuUTXu44Eji1QS+z309sbRmMOeZt/smD3K/P3WBj0VzkCwmZwfMx0QV6gv6UBdE0gErB9L/o= ARC-Message-Signature: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1726182612; c=relaxed/simple; bh=UgPFkQGZug/ahUiaxMk6A8FcjUTTD6DFvopAbeY4uns=; h=From:To:Cc:Subject:Date:Message-Id:In-Reply-To:References: MIME-Version; b=S4QkzCItxQMyfvUYH5nIdcAbsZmZ5yJ8x8aJXe8PEbi41oRiRAVYuiEOctpNGNBrQLXO9iEOfDgBgE7cKWZVXwIWrpZEVXgq9CDGao1WY3UyQ8UnMgixExgOXsFZXIBV4cq4xOPCZ9sPEKHeOFvsQHUnxsRCCziQiwCh5PmFbOQ= ARC-Authentication-Results: i=1; smtp.subspace.kernel.org; dmarc=pass (p=none dis=none) header.from=gmail.com; spf=pass smtp.mailfrom=gmail.com; dkim=pass (2048-bit key) header.d=gmail.com header.i=@gmail.com header.b=RocuqWhL; arc=none smtp.client-ip=209.85.222.177 Authentication-Results: smtp.subspace.kernel.org; dmarc=pass (p=none dis=none) header.from=gmail.com Authentication-Results: smtp.subspace.kernel.org; spf=pass smtp.mailfrom=gmail.com Authentication-Results: smtp.subspace.kernel.org; dkim=pass (2048-bit key) header.d=gmail.com header.i=@gmail.com header.b="RocuqWhL" Received: by mail-qk1-f177.google.com with SMTP id af79cd13be357-7a9b3cd75e5so140705685a.0 for ; Thu, 12 Sep 2024 16:10:11 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20230601; t=1726182610; x=1726787410; darn=vger.kernel.org; h=content-transfer-encoding:mime-version:references:in-reply-to :message-id:date:subject:cc:to:from:from:to:cc:subject:date :message-id:reply-to; bh=fpI8WcXF0Hq+UKc04Wgfp6cPkOWYxJvd+5/cargUOVo=; b=RocuqWhLHJdZdatu31XbVvmfoSMQG26Mw9v7bQEKlzY1myRLA83Sh6vqsEFPYH/aHr bsxhNfPFOw8A+HVEnkvBCMi922cVOvZulaPnRImFf4Is92pbDOzPwpKcV0SdX/KcgtHo w1M4q/Zwbd7nhyg6fyxvR0sPlqTUEBfGpJrAY35yJ9OwBnQc6O6to4Ek0LRCW4vo89Dz T3FoOHJtTz3I+gUzhImbji3HIqih8wa9UiccshCEKfOskh+m0/n8YrRHK5vQySfhRPwo +bZYi9s4PHvIgIIX4jDz5tRMExzUdBdg1U6Xq7l/igInKq5IPaB0/j7PnNcH0PKgCWLN jEcg== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20230601; t=1726182610; x=1726787410; h=content-transfer-encoding:mime-version:references:in-reply-to :message-id:date:subject:cc:to:from:x-gm-message-state:from:to:cc :subject:date:message-id:reply-to; bh=fpI8WcXF0Hq+UKc04Wgfp6cPkOWYxJvd+5/cargUOVo=; b=bB3obRDKk9c6MVlyHsgWY0Qro5TsxP93brfjhPpfRWT+jTsEeezoX6J9QlRtRyaPsf 4xQ+rxhWA7Xu54VVJDhYvLMSBu6mYfsbx1OLsrfrVyNeDsrTfMfkmlTZEBjgXhFREeAo T2yj4US64K5IUhUu3KGGIbIMKoyB1zFAtDfAKb1sRsI1poTU0ka1ETze5a01/e7Z96g1 nV9vpH/eFc30yTkJfqo/dom6OqbGL0Igr+BAXylG2SwZOd+A5r9mX1KGtvuM/INzceGu dq9Ol6BvrcUu9YH8fEuY1kJws3D0P1P64/C8fP75LyQPPQJYUvWcGoeKs0JcULU81Xu+ 3mIA== X-Gm-Message-State: AOJu0YyINtJi3f/2PibBptXKVxjLMkt/pbWdxknzNFWOZVC+bfP06EfN y7kmc2LCFBvxniZIwGkxaV8ScX/cYT+6zwm26AUgdzETu9AKXiU8J49UUA== X-Google-Smtp-Source: AGHT+IFJn8Ye+y7jG1GzGCLORc+H/Xu1tCM7tjQUUvtYnkXIRMc0c6wIyXMKcF0MUpR2I+RFJeFuhQ== X-Received: by 2002:a05:6214:469c:b0:6c5:4f37:2b51 with SMTP id 6a1803df08f44-6c57352dff0mr74379146d6.28.1726182610214; Thu, 12 Sep 2024 16:10:10 -0700 (PDT) Received: from dhcp-10-231-55-133.dhcp.broadcom.net ([192.19.223.252]) by smtp.gmail.com with ESMTPSA id 6a1803df08f44-6c534339a88sm59363136d6.50.2024.09.12.16.10.09 (version=TLS1_2 cipher=ECDHE-ECDSA-AES128-GCM-SHA256 bits=128/128); Thu, 12 Sep 2024 16:10:09 -0700 (PDT) From: Justin Tee To: linux-scsi@vger.kernel.org Cc: jsmart2021@gmail.com, justin.tee@broadcom.com, Justin Tee Subject: [PATCH 8/8] lpfc: Update lpfc version to 14.4.0.5 Date: Thu, 12 Sep 2024 16:24:47 -0700 Message-Id: <20240912232447.45607-9-justintee8345@gmail.com> X-Mailer: git-send-email 2.38.0 In-Reply-To: <20240912232447.45607-1-justintee8345@gmail.com> References: <20240912232447.45607-1-justintee8345@gmail.com> Precedence: bulk X-Mailing-List: linux-scsi@vger.kernel.org List-Id: List-Subscribe: List-Unsubscribe: MIME-Version: 1.0 Update lpfc version to 14.4.0.5 Signed-off-by: Justin Tee --- drivers/scsi/lpfc/lpfc_version.h | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/drivers/scsi/lpfc/lpfc_version.h b/drivers/scsi/lpfc/lpfc_version.h index 2fe0386a1fee..e70f163fab90 100644 --- a/drivers/scsi/lpfc/lpfc_version.h +++ b/drivers/scsi/lpfc/lpfc_version.h @@ -20,7 +20,7 @@ * included with this package. * *******************************************************************/ -#define LPFC_DRIVER_VERSION "14.4.0.4" +#define LPFC_DRIVER_VERSION "14.4.0.5" #define LPFC_DRIVER_NAME "lpfc" /* Used for SLI 2/3 */