From nobody Mon Jun 8 08:28:39 2026 Received: from mail-dy1-f228.google.com (mail-dy1-f228.google.com [74.125.82.228]) (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 6FD091E505 for ; Thu, 4 Jun 2026 16:37:48 +0000 (UTC) Authentication-Results: smtp.subspace.kernel.org; arc=none smtp.client-ip=74.125.82.228 ARC-Seal: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1780591069; cv=none; b=enghXTGr182kmyFZg6JNvzRdOfJeABqjNhtQkBhFbdg4CId66pO5xCUbhfp0wgA7EBDO7OboXHiCk3N5XgVg293DCuSIpY2zHRNLuwVnJHE6Kkw6j2MV0zL8U0h4zve9iE0xusLjUJrReaTCGgDSkbRAMWPsI+0cwHwnxjq2ycU= ARC-Message-Signature: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1780591069; c=relaxed/simple; bh=0Y0Sjy44RdkBzYSdAeUlWQZAogOV193vCQin/KVtbQE=; h=From:To:Cc:Subject:Date:Message-ID:MIME-Version; b=A3kSiR+klcxuQnYv3KK3DDkeZXmfug/m3yoSUILLPxGBG9dJrGMnbl0dg1z2mGiYD98Ftom6ePzomQ3IgSJth73gKLEHl+AJ/PQ5U9nYS7AspILaRxNGCDZsGO/LtXyckacsp+8/hAr3elQs/ol9+BY/S8XCxotwprwBESMvtbM= ARC-Authentication-Results: i=1; smtp.subspace.kernel.org; dmarc=pass (p=reject dis=none) header.from=broadcom.com; spf=fail smtp.mailfrom=broadcom.com; dkim=pass (1024-bit key) header.d=broadcom.com header.i=@broadcom.com header.b=NXFlboor; arc=none smtp.client-ip=74.125.82.228 Authentication-Results: smtp.subspace.kernel.org; dmarc=pass (p=reject dis=none) header.from=broadcom.com Authentication-Results: smtp.subspace.kernel.org; spf=fail smtp.mailfrom=broadcom.com Authentication-Results: smtp.subspace.kernel.org; dkim=pass (1024-bit key) header.d=broadcom.com header.i=@broadcom.com header.b="NXFlboor" Received: by mail-dy1-f228.google.com with SMTP id 5a478bee46e88-304cf518c9dso1098705eec.1 for ; Thu, 04 Jun 2026 09:37:48 -0700 (PDT) X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20251104; t=1780591067; x=1781195867; h=content-transfer-encoding:mime-version:message-id:date:subject:cc :to:from:dkim-signature:x-gm-gg:x-gm-message-state:from:to:cc :subject:date:message-id:reply-to; bh=dA1YjKYHZBhklMysioMr6OFl2p5kCNCILPwzpCesPi8=; b=fOrqFfmPOHDX1GXbM2cNXuv5808iAeLY9uVrNVHkW+YXrfUQSjoNPs/kKScJX8H+mk mHjvczpqr32Hy4cnQ50SPhiSx5iMLqIBLGDYZXoc7wV912MNRddLb2ijcqIFh0e9hj72 nnaWheF9ksM92NQ0ah0dUnVbYHS8zCEt0szxp5amzLyRFAlVyFVXF8TCXhgMj8D4QPXa Z7DcwFdA1kghnRXUHHBNaIf2g9Bpu2+zfeHOEL0gje8EgzuzCYy/sD8kKn9+ZL/SBIus wunxypLC1UW+xrMfde5Sr5+N0CbkIhbS7Cs5o+Gu5tB7uk3fD8sWSE2ianSgkt6/QZBD A10w== X-Forwarded-Encrypted: i=1; AFNElJ/7yI1quNeh6P6wSPk2tmEsUdavqLCfVUloWYatMkmYRlRLG69ZRNcQ7eo31WJOxPBznxLWFKG3kymU47Y=@vger.kernel.org X-Gm-Message-State: AOJu0YwSsRrkqTGl/jGyKSDfEPYeG7GOOV8Ptv8PesasUP1qPUPrpfFB 9+yC1XdLmpb+S8X2gQFwQUJ1pj2F8RLwLf5R+Gaxt1eyA9WeEoI8FsobGaINtHxkzXMjCUlSHkB Cvu063EWxtF3+xnxrq3yed4wfeyu2Vpzfi35o82WqnnfP7JAFJAo2ugkJmghr6E4iL9Uoy7fnok +pGRe59rx/9eyZQZUDdGmOQPaGiMlZfdq6kZesE+7Lv6e8013XH/F3sXejwPnJx1fOyKsYvZo+H HBzn0jPTuMFCXiak0dH X-Gm-Gg: Acq92OHALsmFS7usCcfz3MdWoDibpMaIexxqsBXltlZKYV+GT/2BFJ0B+RSYtleU3pS QYx2QqbTJlwNihrRrnXErBLDmkMk+iL4B883V/rSIoNyUNsOzQ1waeAxpLD9+tQE3eP29xAIsZD WHW9PwO6NmMFNtxjwpqUeZQhapizizHJSXfCKOsnXTksxABywpt5baO1lFJrGvQv53PeJUNX0+G J+EgyrBXsH3CbyCgEZJnZUzz2CTSu7htzzkogxcS9cAXhA1hVr4/P1oOB0ZLmJKde3/HcChefsH 8ZLLOpxnOwKnTveOegjBv62j6zTabVBYrIj6nYwPb+R3fhbkHpWEntzTutROd4rX9sGBev4We2J oTqvb6RCgcZmnKjzVugpixl2TpDpfNJLZcm3zYpbZBNlvADcWd1ziTKeyWY8xdwKuPCwZ7LeGj9 vSsGqiaEb5JE2rq2arcj0os64G1bpK8FMBw09TemiOI/ek7RzFlPGWFRxFOLSXYrbzHGt/ X-Received: by 2002:a05:7300:ac90:b0:2ed:6f94:9d96 with SMTP id 5a478bee46e88-3074fb5b8f2mr4308762eec.19.1780591067386; Thu, 04 Jun 2026 09:37:47 -0700 (PDT) Received: from smtp-us-east1-p01-i01-si01.dlp.protect.broadcom.com (address-144-49-247-117.dlp.protect.broadcom.com. [144.49.247.117]) by smtp-relay.gmail.com with ESMTPS id 5a478bee46e88-3074ddff2d5sm381520eec.23.2026.06.04.09.37.46 for (version=TLS1_2 cipher=ECDHE-ECDSA-AES128-GCM-SHA256 bits=128/128); Thu, 04 Jun 2026 09:37:47 -0700 (PDT) X-Relaying-Domain: broadcom.com X-CFilter-Loop: Reflected Received: by mail-pl1-f197.google.com with SMTP id d9443c01a7336-2bf1dece2ecso9655065ad.1 for ; Thu, 04 Jun 2026 09:37:46 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=broadcom.com; s=google; t=1780591065; x=1781195865; darn=vger.kernel.org; h=content-transfer-encoding:mime-version:message-id:date:subject:cc :to:from:from:to:cc:subject:date:message-id:reply-to; bh=dA1YjKYHZBhklMysioMr6OFl2p5kCNCILPwzpCesPi8=; b=NXFlboorQJmHlG/5Nvo5AXFclF3OghgXlKHr42GmNVQi++XBUtz6aSpGLfpNDKoIla 6WkVCajspctAJmrdClDazsoBI0CHIdczoosaBcFFkjemaBmCnk70bpmIbE+VvDGOzONj uPhmQaOx+VdmVNALAqMkXV5HJ1LSyFaT4KbW0= X-Forwarded-Encrypted: i=1; AFNElJ/tivVeXB1IOeJnKsJRkFoz1+sr4pt4eDXreaMaqv/t4TO9G6VF5XOcPlYYWkJBqqtxdL9sXy6gYa1F57g=@vger.kernel.org X-Received: by 2002:a17:902:c602:b0:2c0:a555:80d6 with SMTP id d9443c01a7336-2c163a14eb7mr56838785ad.2.1780591065297; Thu, 04 Jun 2026 09:37:45 -0700 (PDT) X-Received: by 2002:a17:902:c602:b0:2c0:a555:80d6 with SMTP id d9443c01a7336-2c163a14eb7mr56838585ad.2.1780591064803; Thu, 04 Jun 2026 09:37:44 -0700 (PDT) Received: from localhost.localdomain ([192.19.203.250]) by smtp.gmail.com with ESMTPSA id d9443c01a7336-2c16629c08bsm64746735ad.61.2026.06.04.09.37.40 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Thu, 04 Jun 2026 09:37:44 -0700 (PDT) From: Vikas Gupta To: davem@davemloft.net, edumazet@google.com, kuba@kernel.org, pabeni@redhat.com, andrew+netdev@lunn.ch, horms@kernel.org Cc: netdev@vger.kernel.org, linux-kernel@vger.kernel.org, vsrama-krishna.nemani@broadcom.com, bhargava.marreddy@broadcom.com, rajashekar.hudumula@broadcom.com, ajit.khaparde@broadcom.com, dharmender.garg@broadcom.com, rahul-rg.gupta@broadcom.com, Vikas Gupta Subject: [PATCH net] bnge: fix context mem iteration Date: Thu, 4 Jun 2026 22:07:09 +0530 Message-ID: <20260604163709.497649-1-vikas.gupta@broadcom.com> X-Mailer: git-send-email 2.47.1 Precedence: bulk X-Mailing-List: linux-kernel@vger.kernel.org List-Id: List-Subscribe: List-Unsubscribe: MIME-Version: 1.0 Content-Transfer-Encoding: quoted-printable X-DetectorID-Processed: b00c1d49-9d2e-4205-b15f-d015386d3d5e Content-Type: text/plain; charset="utf-8" The firmware advertises context memory (backing store) types through a linked list, with BNGE_CTX_INV serving as the end-of-list sentinel. However, the driver incorrectly assumes that the list is strictly ordered and prematurely terminates traversal when it encounters an unrecognized type (>=3DBNGE_CTX_V2_MAX). As a result, any valid context types that appear later in the chain are silently skipped, leading to incomplete memory configuration and eventual driver load failure. Fix this by traversing the entire list until the BNGE_CTX_INV sentinel is reached, while safely ignoring only those context types that fall outside the supported range. Fixes: 29c5b358f385 ("bng_en: Add backing store support") Signed-off-by: Vikas Gupta Reviewed-by: Dharmender Garg --- drivers/net/ethernet/broadcom/bnge/bnge_hwrm_lib.c | 14 ++++++++++---- 1 file changed, 10 insertions(+), 4 deletions(-) diff --git a/drivers/net/ethernet/broadcom/bnge/bnge_hwrm_lib.c b/drivers/n= et/ethernet/broadcom/bnge/bnge_hwrm_lib.c index eb11800f5573..1c9cfec1b633 100644 --- a/drivers/net/ethernet/broadcom/bnge/bnge_hwrm_lib.c +++ b/drivers/net/ethernet/broadcom/bnge/bnge_hwrm_lib.c @@ -277,7 +277,7 @@ int bnge_hwrm_func_backing_store_qcaps(struct bnge_dev = *bd) struct hwrm_func_backing_store_qcaps_v2_output *resp; struct hwrm_func_backing_store_qcaps_v2_input *req; struct bnge_ctx_mem_info *ctx; - u16 type; + u16 type, next_type; int rc; =20 if (bd->ctx) @@ -294,8 +294,8 @@ int bnge_hwrm_func_backing_store_qcaps(struct bnge_dev = *bd) =20 resp =3D bnge_hwrm_req_hold(bd, req); =20 - for (type =3D 0; type < BNGE_CTX_V2_MAX; ) { - struct bnge_ctx_mem_type *ctxm =3D &ctx->ctx_arr[type]; + for (type =3D 0; type < BNGE_CTX_INV; type =3D next_type) { + struct bnge_ctx_mem_type *ctxm; u8 init_val, init_off, i; __le32 *p; u32 flags; @@ -304,8 +304,14 @@ int bnge_hwrm_func_backing_store_qcaps(struct bnge_dev= *bd) rc =3D bnge_hwrm_req_send(bd, req); if (rc) goto ctx_done; + + next_type =3D le16_to_cpu(resp->next_valid_type); + if (type >=3D BNGE_CTX_V2_MAX) + continue; + + ctxm =3D &ctx->ctx_arr[type]; flags =3D le32_to_cpu(resp->flags); - type =3D le16_to_cpu(resp->next_valid_type); + if (!(flags & FUNC_BACKING_STORE_QCAPS_V2_RESP_FLAGS_TYPE_VALID)) continue; --=20 2.47.1