From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: from mails.dpdk.org (mails.dpdk.org [217.70.189.124]) by inbox.dpdk.org (Postfix) with ESMTP id 8913245804 for ; Fri, 23 Aug 2024 18:24:18 +0200 (CEST) Received: from mails.dpdk.org (localhost [127.0.0.1]) by mails.dpdk.org (Postfix) with ESMTP id 83DE54338B; Fri, 23 Aug 2024 18:24:18 +0200 (CEST) Received: from us-smtp-delivery-124.mimecast.com (us-smtp-delivery-124.mimecast.com [170.10.129.124]) by mails.dpdk.org (Postfix) with ESMTP id 975FE402BE for ; Fri, 23 Aug 2024 18:24:17 +0200 (CEST) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=redhat.com; s=mimecast20190719; t=1724430257; h=from:from:reply-to:subject:subject:date:date:message-id:message-id: to:to:cc:cc:mime-version:mime-version:content-type:content-type: content-transfer-encoding:content-transfer-encoding: in-reply-to:in-reply-to:references:references; bh=lPCL1YQxcR+XLwgiq7PqROSsxeJZ5AahhLeAshxFpEE=; b=CaZ1Yp9975/4BHribHdHSwvddTF9Lk9SE+uF5R+c6OU0Ipjr1qu07B1Jy0+FUHwnNRAAjI lVCEzcOmUagGlwFTmSKTcQfvQEcj4qLs3hHNbBKF/hv2m1vVprKi2YLZbvBtm76wMvmfZi iBM+Mp/LojD1r01yiydXC9+bdZmLjs4= Received: from mx-prod-mc-04.mail-002.prod.us-west-2.aws.redhat.com (ec2-54-186-198-63.us-west-2.compute.amazonaws.com [54.186.198.63]) by relay.mimecast.com with ESMTP with STARTTLS (version=TLSv1.3, cipher=TLS_AES_256_GCM_SHA384) id us-mta-669-9x2i7k5RMBerDr4nnM03IQ-1; Fri, 23 Aug 2024 12:24:15 -0400 X-MC-Unique: 9x2i7k5RMBerDr4nnM03IQ-1 Received: from mx-prod-int-05.mail-002.prod.us-west-2.aws.redhat.com (mx-prod-int-05.mail-002.prod.us-west-2.aws.redhat.com [10.30.177.17]) (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits) key-exchange X25519 server-signature RSA-PSS (2048 bits) server-digest SHA256) (No client certificate requested) by mx-prod-mc-04.mail-002.prod.us-west-2.aws.redhat.com (Postfix) with ESMTPS id 6C5A71955D4B; Fri, 23 Aug 2024 16:24:14 +0000 (UTC) Received: from rh.redhat.com (unknown [10.39.193.224]) by mx-prod-int-05.mail-002.prod.us-west-2.aws.redhat.com (Postfix) with ESMTP id 76AA419560A3; Fri, 23 Aug 2024 16:24:12 +0000 (UTC) From: Kevin Traynor To: Zhichao Zeng Cc: Bruce Richardson , Song Jiale , dpdk stable Subject: patch 'net/ice/base: fix temporary failures reading NVM' has been queued to stable release 21.11.8 Date: Fri, 23 Aug 2024 17:19:21 +0100 Message-ID: <20240823161929.1004778-133-ktraynor@redhat.com> In-Reply-To: <20240823161929.1004778-1-ktraynor@redhat.com> References: <20240823161929.1004778-1-ktraynor@redhat.com> MIME-Version: 1.0 X-Scanned-By: MIMEDefang 3.0 on 10.30.177.17 X-Mimecast-Spam-Score: 0 X-Mimecast-Originator: redhat.com Content-Transfer-Encoding: 8bit Content-Type: text/plain; charset="US-ASCII"; x-default=true X-BeenThere: stable@dpdk.org X-Mailman-Version: 2.1.29 Precedence: list List-Id: patches for DPDK stable branches List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: stable-bounces@dpdk.org Hi, FYI, your patch has been queued to stable release 21.11.8 Note it hasn't been pushed to http://dpdk.org/browse/dpdk-stable yet. It will be pushed if I get no objections before 08/28/24. So please shout if anyone has objections. Also note that after the patch there's a diff of the upstream commit vs the patch applied to the branch. This will indicate if there was any rebasing needed to apply to the stable branch. If there were code changes for rebasing (ie: not only metadata diffs), please double check that the rebase was correctly done. Queued patches are on a temporary branch at: https://github.com/kevintraynor/dpdk-stable This queued commit can be viewed at: https://github.com/kevintraynor/dpdk-stable/commit/564a79c3d37ee61d1de39d45498db13bfbb5430f Thanks. Kevin --- >From 564a79c3d37ee61d1de39d45498db13bfbb5430f Mon Sep 17 00:00:00 2001 From: Zhichao Zeng Date: Tue, 23 Jul 2024 14:19:15 +0800 Subject: [PATCH] net/ice/base: fix temporary failures reading NVM [ upstream commit 04de5c7d40b24ef391bd5b51be23994a6cfdd867 ] Reading NVM fails in some scenarios, so follow the approach taken by kernel driver and add retries on read failures. Fixes: 2516684aed7a ("net/ice/base: extract logic of flat NVM read to function") Signed-off-by: Zhichao Zeng Reviewed-by: Bruce Richardson Tested-by: Song Jiale --- drivers/net/ice/base/ice_nvm.c | 24 +++++++++++++++++++----- 1 file changed, 19 insertions(+), 5 deletions(-) diff --git a/drivers/net/ice/base/ice_nvm.c b/drivers/net/ice/base/ice_nvm.c index 25f32d03e0..48e0d418e2 100644 --- a/drivers/net/ice/base/ice_nvm.c +++ b/drivers/net/ice/base/ice_nvm.c @@ -73,4 +73,5 @@ ice_read_flat_nvm(struct ice_hw *hw, u32 offset, u32 *length, u8 *data, u32 inlen = *length; u32 bytes_read = 0; + int retry_cnt = 0; bool last_cmd; @@ -107,9 +108,22 @@ ice_read_flat_nvm(struct ice_hw *hw, u32 offset, u32 *length, u8 *data, data + bytes_read, last_cmd, read_shadow_ram, NULL); - if (status) - break; - - bytes_read += read_size; - offset += read_size; + if (status) { + if (hw->adminq.sq_last_status != ICE_AQ_RC_EBUSY || + retry_cnt > ICE_SQ_SEND_MAX_EXECUTE) + break; + ice_debug(hw, ICE_DBG_NVM, + "NVM read EBUSY error, retry %d\n", + retry_cnt + 1); + ice_release_nvm(hw); + msleep(ICE_SQ_SEND_DELAY_TIME_MS); + status = ice_acquire_nvm(hw, ICE_RES_READ); + if (status) + break; + retry_cnt++; + } else { + bytes_read += read_size; + offset += read_size; + retry_cnt = 0; + } } while (!last_cmd); -- 2.46.0 --- Diff of the applied patch vs upstream commit (please double-check if non-empty: --- --- - 2024-08-23 17:18:13.671084306 +0100 +++ 0133-net-ice-base-fix-temporary-failures-reading-NVM.patch 2024-08-23 17:18:09.896430720 +0100 @@ -1 +1 @@ -From 04de5c7d40b24ef391bd5b51be23994a6cfdd867 Mon Sep 17 00:00:00 2001 +From 564a79c3d37ee61d1de39d45498db13bfbb5430f Mon Sep 17 00:00:00 2001 @@ -5,0 +6,2 @@ +[ upstream commit 04de5c7d40b24ef391bd5b51be23994a6cfdd867 ] + @@ -10 +11,0 @@ -Cc: stable@dpdk.org @@ -20 +21 @@ -index 528489929e..5e982de4b5 100644 +index 25f32d03e0..48e0d418e2 100644 @@ -23 +24 @@ -@@ -72,4 +72,5 @@ ice_read_flat_nvm(struct ice_hw *hw, u32 offset, u32 *length, u8 *data, +@@ -73,4 +73,5 @@ ice_read_flat_nvm(struct ice_hw *hw, u32 offset, u32 *length, u8 *data, @@ -28 +29 @@ - int status; +