From nobody Fri Sep 25 00:40:14 2026 Received: from relay.smtp-ext.broadcom.com (relay.smtp-ext.broadcom.com [192.19.144.207]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by smtp.subspace.kernel.org (Postfix) with ESMTPS id D1DF92C3255; Fri, 18 Sep 2026 00:14:44 +0000 (UTC) Authentication-Results: smtp.subspace.kernel.org; arc=none smtp.client-ip=192.19.144.207 ARC-Seal: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1789690488; cv=none; b=Fjdf0igBalWOUFxfVRALenPtFAvMrMd34NvJF6T3P1HsdnkJ8TTcAkmN+eS0zYKAICcwHvAF7cJU8YepciRf2dhSE9p7RqE+opV3OAltmb2helPEVI1i4wdWxcH02NERXRi+hPmf+mPZomAzvNMs9qMwkcj7NgwyfxtW8G2OzXY= ARC-Message-Signature: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1789690488; c=relaxed/simple; bh=ltgQEPMPlXFyA04U5tftgacR8zuqN+977jnHwjyj9OU=; h=From:To:Cc:Subject:Date:Message-Id:In-Reply-To:References: MIME-Version; b=k+KEj5pLoY6R6RWjuqshGMY/GE+ctdFzUUPQlnPj0G5UylOTx0dxP/rMBXRs4GcmUwWw/+8gR8YGR9w+HymK64Qtat2c8q/jUHRn4lVFqpFbGlRBX0anpfEJ7EDxr6baWX7rfOCudxRbM9ILJdB8yOIxuwmFaemp2+Ts9w56dWc= 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=Xo2wouNO; arc=none smtp.client-ip=192.19.144.207 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="Xo2wouNO" Received: from mail-lvn-it-01.broadcom.com (mail-lvn-it-01.lvn.broadcom.net [10.36.132.253]) by relay.smtp-ext.broadcom.com (Postfix) with ESMTP id DB7B9C035EC6; Thu, 17 Sep 2026 17:07:40 -0700 (PDT) DKIM-Filter: OpenDKIM Filter v2.11.0 relay.smtp-ext.broadcom.com DB7B9C035EC6 DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=broadcom.com; s=dkimrelay; t=1789690060; bh=ltgQEPMPlXFyA04U5tftgacR8zuqN+977jnHwjyj9OU=; h=From:To:Cc:Subject:Date:In-Reply-To:References:From; b=Xo2wouNOHvnCkLyjX9tOOS/MMJaxzPK0pTNf2CGpIzrCagHsfZhQD1k8J1T6QTqA9 QHWjBwffGjSPTRf8cgO9GXR3oBMmioJHCXNNdijvMrMnURMxLg6IYJTHC/dGcGZyvy YOnCsUFpbnPHEJg44NVtn+AQ0fEy1reP5h7PU/mw= Received: from stbirv-lnx-1.igp.broadcom.net (stbirv-lnx-1.igp.broadcom.net [10.67.48.32]) (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 mail-lvn-it-01.broadcom.com (Postfix) with ESMTPSA id 7D155AD9; Thu, 17 Sep 2026 17:07:40 -0700 (PDT) From: Florian Fainelli To: netdev@vger.kernel.org Cc: Florian Fainelli , Cursor , Doug Berger , Broadcom internal kernel review list , Andrew Lunn , "David S. Miller" , Eric Dumazet , Jakub Kicinski , Paolo Abeni , Zak Kemble , Simon Horman , Ryo Takakura , linux-kernel@vger.kernel.org (open list), Nicolai Buchwitz Subject: [PATCH net 1/8] net: bcmgenet: fix 64-bit RTNL stats reading in ethtool on 32-bit systems Date: Thu, 17 Sep 2026 17:07:25 -0700 Message-Id: <20260918000732.276506-2-florian.fainelli@broadcom.com> X-Mailer: git-send-email 2.34.1 In-Reply-To: <20260918000732.276506-1-florian.fainelli@broadcom.com> References: <20260918000732.276506-1-florian.fainelli@broadcom.com> 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 Content-Type: text/plain; charset="utf-8" When bcmgenet was converted to 64-bit statistics, STAT_RTNL members were switched to point into struct rtnl_link_stats64, whose fields are 64-bit (__u64) regardless of architecture. However, bcmgenet_get_ethtool_stats() retained a legacy check: if (sizeof(unsigned long) !=3D sizeof(u32) && s->stat_sizeof =3D=3D sizeof(unsigned long)) On 32-bit systems, sizeof(unsigned long) =3D=3D sizeof(u32), causing this condition to evaluate to false. As a result, 64-bit RTNL stats fields were read via *(u32 *)p. On 32-bit Big-Endian systems (such as MIPS BE), this reads the high 32 bits and returns 0 until the counter exceeds 4GB; on 32-bit Little-Endian systems (such as 32-bit ARM), the value is truncated to 32 bits. Fix this by checking if s->stat_sizeof =3D=3D sizeof(u64) so 64-bit fields = are always read as 64-bit values. Fixes: 59aa6e3072aa ("net: bcmgenet: switch to use 64bit statistics") Assisted-by: LLM Co-authored-by: Cursor Change-Id: I3e9f2f8d4fd136392148d6c0cd4eb40f7ccbe4ef Reviewed-by: Nicolai Buchwitz --- drivers/net/ethernet/broadcom/genet/bcmgenet.c | 5 ++--- 1 file changed, 2 insertions(+), 3 deletions(-) diff --git a/drivers/net/ethernet/broadcom/genet/bcmgenet.c b/drivers/net/e= thernet/broadcom/genet/bcmgenet.c index b916080f4ff1..7b089de9484e 100644 --- a/drivers/net/ethernet/broadcom/genet/bcmgenet.c +++ b/drivers/net/ethernet/broadcom/genet/bcmgenet.c @@ -1346,9 +1346,8 @@ static void bcmgenet_get_ethtool_stats(struct net_dev= ice *dev, p =3D (char *)&stats64; =20 p +=3D s->stat_offset; - if (sizeof(unsigned long) !=3D sizeof(u32) && - s->stat_sizeof =3D=3D sizeof(unsigned long)) - data[i] =3D *(unsigned long *)p; + if (s->stat_sizeof =3D=3D sizeof(u64)) + data[i] =3D *(u64 *)p; else data[i] =3D *(u32 *)p; } --=20 2.34.1 From nobody Fri Sep 25 00:40:14 2026 Received: from relay.smtp-ext.broadcom.com (relay.smtp-ext.broadcom.com [192.19.166.228]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by smtp.subspace.kernel.org (Postfix) with ESMTPS id 8D6AF27B340; Fri, 18 Sep 2026 00:12:52 +0000 (UTC) Authentication-Results: smtp.subspace.kernel.org; arc=none smtp.client-ip=192.19.166.228 ARC-Seal: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1789690381; cv=none; b=Fu10L8FT2FJ5ijaZ2wyBPArkRvXbkg0Z/c75mfO8MRLRsy4+auacn1MqIs16mkbjW3ORbFDbrJ8STEqsLaUcT/Shtp0UFq3CDikrVxmAML8sj1WGZUj6lphoZatic1Oxr+vj+jcFLHvjnp6fUJ9Cr62s+ytnB0x2oInAZ/2qQ+8= ARC-Message-Signature: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1789690381; c=relaxed/simple; bh=OU252J2ZnSmRRNfbObL7zii9NVSAf7XcjVRwZ+SM6XI=; h=From:To:Cc:Subject:Date:Message-Id:In-Reply-To:References: MIME-Version; b=i/9RhKqVOSx/HE9NgzUT/BTqvDo8ttFRlqQQgXSqTnLOCY73esNcD2HjAKswMbHsmNwK2u18gX3+SFAZtPSKMmXkmaLRHseXtiSSYokB24oPT36FI/jOU147cI1g2kiPvdhXTH+KTe1lpyVUjpwyUIDeIsemz/1Sn4xAYJOSs/Y= 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=is5mYRvy; arc=none smtp.client-ip=192.19.166.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="is5mYRvy" Received: from mail-lvn-it-01.broadcom.com (mail-lvn-it-01.lvn.broadcom.net [10.36.132.253]) by relay.smtp-ext.broadcom.com (Postfix) with ESMTP id D87CDC051047; Thu, 17 Sep 2026 17:07:40 -0700 (PDT) DKIM-Filter: OpenDKIM Filter v2.11.0 relay.smtp-ext.broadcom.com D87CDC051047 DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=broadcom.com; s=dkimrelay; t=1789690060; bh=OU252J2ZnSmRRNfbObL7zii9NVSAf7XcjVRwZ+SM6XI=; h=From:To:Cc:Subject:Date:In-Reply-To:References:From; b=is5mYRvyqWxj7C7qRUbFgGGoQzfyxlhhShd+VmzXB7ERSU05Sbxdeuezutf2vdkgq qjfGYVAyA9Ws3RPAO/jQW62He2AJIlHkqXs6KwwyExuD6urieviHcAg0ByQSEGVRin pmDjOo8Z3vZvsDaXYwczk0Xk9PtUeoctlhTYNnsk= Received: from stbirv-lnx-1.igp.broadcom.net (stbirv-lnx-1.igp.broadcom.net [10.67.48.32]) (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 mail-lvn-it-01.broadcom.com (Postfix) with ESMTPSA id ACCADACC; Thu, 17 Sep 2026 17:07:40 -0700 (PDT) From: Florian Fainelli To: netdev@vger.kernel.org Cc: Florian Fainelli , Cursor , Doug Berger , Broadcom internal kernel review list , Andrew Lunn , "David S. Miller" , Eric Dumazet , Jakub Kicinski , Paolo Abeni , Zak Kemble , Simon Horman , Ryo Takakura , linux-kernel@vger.kernel.org (open list), Nicolai Buchwitz Subject: [PATCH net 2/8] net: bcmgenet: initialize u64 stats seq counter for all queues Date: Thu, 17 Sep 2026 17:07:26 -0700 Message-Id: <20260918000732.276506-3-florian.fainelli@broadcom.com> X-Mailer: git-send-email 2.34.1 In-Reply-To: <20260918000732.276506-1-florian.fainelli@broadcom.com> References: <20260918000732.276506-1-florian.fainelli@broadcom.com> 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 Content-Type: text/plain; charset="utf-8" bcmgenet_gstrings_stats statically defines ethtool statistics for queues 0 through GENET_MAX_MQ_CNT (4). However, bcmgenet_probe() only initialized the u64_stats_sync seq counter up to priv->hw_params->rx_queues and priv->hw_params->tx_queues. Since priv->hw_params->rx_queues is 0 across all hardware versions (and priv->hw_params->tx_queues is 0 on GENET V1), rings 1..4 have uninitialized u64_stats_sync structures. When ethtool -S is run on 32-bit kernels, bcmgenet_get_ethtool_stats() reads stats from rx_rings[1..4], causing lockdep warnings due to the uninitialized sequence counters. Initialize the sequence counters for all GENET_MAX_MQ_CNT + 1 queues. Fixes: ffc2c8c4a714 ("net: bcmgenet: Initialize u64 stats seq counter") Assisted-by: LLM Co-authored-by: Cursor Change-Id: I6c3debbd9fa5e7a151789fccf3d9a38db184f434 Reviewed-by: Nicolai Buchwitz --- drivers/net/ethernet/broadcom/genet/bcmgenet.c | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/drivers/net/ethernet/broadcom/genet/bcmgenet.c b/drivers/net/e= thernet/broadcom/genet/bcmgenet.c index 7b089de9484e..055e1362173b 100644 --- a/drivers/net/ethernet/broadcom/genet/bcmgenet.c +++ b/drivers/net/ethernet/broadcom/genet/bcmgenet.c @@ -4134,10 +4134,10 @@ static int bcmgenet_probe(struct platform_device *p= dev) priv->rx_rings[i].rx_max_coalesced_frames =3D 1; =20 /* Initialize u64 stats seq counter for 32bit machines */ - for (i =3D 0; i <=3D priv->hw_params->rx_queues; i++) + for (i =3D 0; i <=3D GENET_MAX_MQ_CNT; i++) { u64_stats_init(&priv->rx_rings[i].stats64.syncp); - for (i =3D 0; i <=3D priv->hw_params->tx_queues; i++) u64_stats_init(&priv->tx_rings[i].stats64.syncp); + } =20 /* libphy will determine the link state */ netif_carrier_off(dev); --=20 2.34.1 From nobody Fri Sep 25 00:40:14 2026 Received: from relay.smtp-ext.broadcom.com (lpdvsmtp09.broadcom.com [192.19.166.228]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by smtp.subspace.kernel.org (Postfix) with ESMTPS id 5E08B2D3727; Fri, 18 Sep 2026 00:12:53 +0000 (UTC) Authentication-Results: smtp.subspace.kernel.org; arc=none smtp.client-ip=192.19.166.228 ARC-Seal: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1789690380; cv=none; b=lQr3IF3lSeOE7Vs4Yecov/oMAoSy1kUlchEVvD3ClrtutUChoPCmjLGaZj96wH5HL2zDTzuBXklcC9lxuN9NjYMhFBeD7fZ7XvocPagmjDRLCPsrphKXKyc3fxRxpYmgCSRzonqELssDm76EMYZDHiK5DY14YenBSNRu2ncOmRs= ARC-Message-Signature: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1789690380; c=relaxed/simple; bh=CMNXkC8/cWQnRYV8q/bac9Hu9wXd+bDb2r+VEf8/6KY=; h=From:To:Cc:Subject:Date:Message-Id:In-Reply-To:References: MIME-Version; b=V2VVuYBW6j/JFi46+m2V/LJ2isfdUpoVpE7Q0h+X3IX+Ptt1691yAcxykf0JD+QSnqxTMDbKV+jFYuIfPLAAW6WzqWwM9+w3nx4JH4N5ZroPDhn7POSUjVGorG6s1kermBtDhmsHLthExQ5UbKV3d62sIY5BwSxp5SUX9jRwHoo= 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=iBALxOrR; arc=none smtp.client-ip=192.19.166.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="iBALxOrR" Received: from mail-lvn-it-01.broadcom.com (mail-lvn-it-01.lvn.broadcom.net [10.36.132.253]) by relay.smtp-ext.broadcom.com (Postfix) with ESMTP id 1038EC05104B; Thu, 17 Sep 2026 17:07:41 -0700 (PDT) DKIM-Filter: OpenDKIM Filter v2.11.0 relay.smtp-ext.broadcom.com 1038EC05104B DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=broadcom.com; s=dkimrelay; t=1789690061; bh=CMNXkC8/cWQnRYV8q/bac9Hu9wXd+bDb2r+VEf8/6KY=; h=From:To:Cc:Subject:Date:In-Reply-To:References:From; b=iBALxOrRhjurYZi3gx4TBausLzeViDg8wHQr1fjAAnywm6j+N8lrGThqc3EAhETj5 OFphd1xzBj+UFiNRvrCfATwz0QGSHtaobtwV1UVE/36dBpayAo3m1FjAZ4ZVkTvrJi CgH+jqCDsHLQUfG2gqWBgSjRePPPiRrVIygnfmk0= Received: from stbirv-lnx-1.igp.broadcom.net (stbirv-lnx-1.igp.broadcom.net [10.67.48.32]) (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 mail-lvn-it-01.broadcom.com (Postfix) with ESMTPSA id DC1DBAE0; Thu, 17 Sep 2026 17:07:40 -0700 (PDT) From: Florian Fainelli To: netdev@vger.kernel.org Cc: Florian Fainelli , Cursor , Doug Berger , Broadcom internal kernel review list , Andrew Lunn , "David S. Miller" , Eric Dumazet , Jakub Kicinski , Paolo Abeni , Zak Kemble , Simon Horman , Ryo Takakura , linux-kernel@vger.kernel.org (open list), Nicolai Buchwitz Subject: [PATCH net 3/8] net: bcmgenet: do not skip WoL power up on GENET V1 Date: Thu, 17 Sep 2026 17:07:27 -0700 Message-Id: <20260918000732.276506-4-florian.fainelli@broadcom.com> X-Mailer: git-send-email 2.34.1 In-Reply-To: <20260918000732.276506-1-florian.fainelli@broadcom.com> References: <20260918000732.276506-1-florian.fainelli@broadcom.com> 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 Content-Type: text/plain; charset="utf-8" bcmgenet_power_up() had an early check for bcmgenet_has_ext(priv) before dispatching by power mode. GENET V1 does not have the EXT block (unlike GENET V2+), which causes bcmgenet_power_up() to immediately return 0. As a consequence, when waking up from GENET_POWER_WOL_MAGIC on GENET V1, bcmgenet_wol_power_up_cfg() is never invoked to disable the WoL clock, clear wake event masks, and restore normal PHY and MAC operations. Move the bcmgenet_has_ext() checks to the GENET_POWER_PASSIVE and GENET_POWER_CABLE_SENSE cases where the EXT registers are actually accessed, allowing GENET_POWER_WOL_MAGIC cleanup to execute on all hardware versions. Fixes: 1c1008c793fa ("net: bcmgenet: add main driver file") Assisted-by: LLM Co-authored-by: Cursor Change-Id: Id6c85b2790191786aa535d71fea357d1cd49a2ec Reviewed-by: Nicolai Buchwitz --- drivers/net/ethernet/broadcom/genet/bcmgenet.c | 13 ++++++++----- 1 file changed, 8 insertions(+), 5 deletions(-) diff --git a/drivers/net/ethernet/broadcom/genet/bcmgenet.c b/drivers/net/e= thernet/broadcom/genet/bcmgenet.c index 055e1362173b..bfb74dca55d6 100644 --- a/drivers/net/ethernet/broadcom/genet/bcmgenet.c +++ b/drivers/net/ethernet/broadcom/genet/bcmgenet.c @@ -1762,13 +1762,12 @@ static int bcmgenet_power_up(struct bcmgenet_priv *= priv, int ret =3D 0; u32 reg; =20 - if (!bcmgenet_has_ext(priv)) - return ret; - - reg =3D bcmgenet_ext_readl(priv, EXT_EXT_PWR_MGMT); - switch (mode) { case GENET_POWER_PASSIVE: + if (!bcmgenet_has_ext(priv)) + break; + + reg =3D bcmgenet_ext_readl(priv, EXT_EXT_PWR_MGMT); reg &=3D ~(EXT_PWR_DOWN_DLL | EXT_PWR_DOWN_BIAS | EXT_ENERGY_DET_MASK); if (GENET_IS_V5(priv) && !bcmgenet_has_ephy_16nm(priv)) { @@ -1792,8 +1791,12 @@ static int bcmgenet_power_up(struct bcmgenet_priv *p= riv, break; =20 case GENET_POWER_CABLE_SENSE: + if (!bcmgenet_has_ext(priv)) + break; + /* enable APD */ if (!GENET_IS_V5(priv)) { + reg =3D bcmgenet_ext_readl(priv, EXT_EXT_PWR_MGMT); reg |=3D EXT_PWR_DN_EN_LD; bcmgenet_ext_writel(priv, reg, EXT_EXT_PWR_MGMT); } --=20 2.34.1 From nobody Fri Sep 25 00:40:14 2026 Received: from relay.smtp-ext.broadcom.com (lpdvsmtp11.broadcom.com [192.19.166.231]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by smtp.subspace.kernel.org (Postfix) with ESMTPS id B20D73033F8; Fri, 18 Sep 2026 00:16:14 +0000 (UTC) Authentication-Results: smtp.subspace.kernel.org; arc=none smtp.client-ip=192.19.166.231 ARC-Seal: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1789690577; cv=none; b=dYNI2NHSV2xVOG8wD9MCudDLHQnAfALDd+MznaBAVtk6wFz+qln/mO3JHlsRlIuHFdZTOnhfpDp7BRhEWMaW9TnrJ5R3P56LzURCCagBTYbnabNMGLIBF2ukedwBjRLqCUpwyWZXDlni0PpOkwc56hIPMwZHQYadiC2iAXY2yIg= ARC-Message-Signature: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1789690577; c=relaxed/simple; bh=GYEVI+ehrYqNt7UQM6z/nu5gGYKb1eYV2VPn0Ei3W8Y=; h=From:To:Cc:Subject:Date:Message-Id:In-Reply-To:References: MIME-Version; b=NQFzp3D9IXvDXfyY7SqIr2i0FNzfGXtuSMcVyTscTa3BYWuo6xSItpBgKWey+Vw4IYgxiKwv4trj3DjU4PNl/4rS6klXCTN8eo9NM6JtyGNSB/KsfKRn+JTZNU+xVBO4P3fG3gCzVN2jqvAi4nfLS243gtyt968MjJnwwq7bAwM= 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=KzLpGpg5; arc=none smtp.client-ip=192.19.166.231 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="KzLpGpg5" Received: from mail-lvn-it-01.broadcom.com (mail-lvn-it-01.lvn.broadcom.net [10.36.132.253]) by relay.smtp-ext.broadcom.com (Postfix) with ESMTP id 4008AC0C3BC9; Thu, 17 Sep 2026 17:07:41 -0700 (PDT) DKIM-Filter: OpenDKIM Filter v2.11.0 relay.smtp-ext.broadcom.com 4008AC0C3BC9 DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=broadcom.com; s=dkimrelay; t=1789690061; bh=GYEVI+ehrYqNt7UQM6z/nu5gGYKb1eYV2VPn0Ei3W8Y=; h=From:To:Cc:Subject:Date:In-Reply-To:References:From; b=KzLpGpg5U3B59Fy+jisXxb6UZpbpOUCjSU/ZuotpUW9uskOqHD9kjllWOR2Bde72q aj8qB1kVqodwV1QRKgykVYraObLT/19ibcHT/EHEeuqXFuuURUCyJyrFVcwT08pD6W pdKWUiGhl48N1hu/G5Fo35EWSWwqFhO5aYiC/oiI= Received: from stbirv-lnx-1.igp.broadcom.net (stbirv-lnx-1.igp.broadcom.net [10.67.48.32]) (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 mail-lvn-it-01.broadcom.com (Postfix) with ESMTPSA id 17B6AACC; Thu, 17 Sep 2026 17:07:41 -0700 (PDT) From: Florian Fainelli To: netdev@vger.kernel.org Cc: Florian Fainelli , Cursor , Doug Berger , Broadcom internal kernel review list , Andrew Lunn , "David S. Miller" , Eric Dumazet , Jakub Kicinski , Paolo Abeni , Zak Kemble , Simon Horman , Ryo Takakura , linux-kernel@vger.kernel.org (open list), Nicolai Buchwitz Subject: [PATCH net 4/8] net: bcmgenet: clean up RX NAPI on bcmgenet_init_rx_queues failure Date: Thu, 17 Sep 2026 17:07:28 -0700 Message-Id: <20260918000732.276506-5-florian.fainelli@broadcom.com> X-Mailer: git-send-email 2.34.1 In-Reply-To: <20260918000732.276506-1-florian.fainelli@broadcom.com> References: <20260918000732.276506-1-florian.fainelli@broadcom.com> 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 Content-Type: text/plain; charset="utf-8" bcmgenet_init_rx_ring() registers a NAPI instance for each RX ring via netif_napi_add(). If bcmgenet_init_rx_queues() fails while initializing subsequent rings, bcmgenet_init_dma() frees the RX buffers and page pools but fails to clean up already registered NAPI instances with bcmgenet_fini_rx_napi(). This leaves stale NAPI structs on the net_device napi_list. Call bcmgenet_fini_rx_napi() in the error handling path of bcmgenet_init_dma() when bcmgenet_init_rx_queues() fails. Fixes: 1c1008c793fa ("net: bcmgenet: add main driver file") Assisted-by: LLM Co-authored-by: Cursor Change-Id: I45982e0e198a44f3f56b1300f462870462b81108 --- drivers/net/ethernet/broadcom/genet/bcmgenet.c | 1 + 1 file changed, 1 insertion(+) diff --git a/drivers/net/ethernet/broadcom/genet/bcmgenet.c b/drivers/net/e= thernet/broadcom/genet/bcmgenet.c index bfb74dca55d6..ef155a170fa6 100644 --- a/drivers/net/ethernet/broadcom/genet/bcmgenet.c +++ b/drivers/net/ethernet/broadcom/genet/bcmgenet.c @@ -3167,6 +3167,7 @@ static int bcmgenet_init_dma(struct bcmgenet_priv *pr= iv, bool flush_rx) ret =3D bcmgenet_init_rx_queues(priv->dev); if (ret) { netdev_err(priv->dev, "failed to initialize Rx queues\n"); + bcmgenet_fini_rx_napi(priv); bcmgenet_free_rx_buffers(priv); bcmgenet_destroy_rx_page_pools(priv); kfree(priv->rx_cbs); --=20 2.34.1 From nobody Fri Sep 25 00:40:14 2026 Received: from relay.smtp-ext.broadcom.com (relay.smtp-ext.broadcom.com [192.19.166.231]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by smtp.subspace.kernel.org (Postfix) with ESMTPS id B1DF93033E1; Fri, 18 Sep 2026 00:16:14 +0000 (UTC) Authentication-Results: smtp.subspace.kernel.org; arc=none smtp.client-ip=192.19.166.231 ARC-Seal: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1789690578; cv=none; b=cHleujX91bhH4QN5W8aOVGGZW2Oc9JtC4FsSBXqZjum2dM/rS/VfTIjaYz6BMUKxPYmwUGHtJrKBthpxnNF+f4eSdRtcYDOlcIaM54QQnapyLG0ed7njXtcDnajMJOyuaQyOCjmSZ6X4EuIH/ndsiAa3J4lUKzGa/eLn9bLp5jQ= ARC-Message-Signature: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1789690578; c=relaxed/simple; bh=SFwBTmAFjRx28AmNVjEg2GSfw/YyRzh3aFVaWsP2jr0=; h=From:To:Cc:Subject:Date:Message-Id:In-Reply-To:References: MIME-Version; b=jOiZlwjE3EpMMB3r0k6ABjGz53DrP8ENfBf+4LlIWlLTm34ao833ENusu636V/2AfH1/uQs+M2XKA5sKFvuONw9Tf7QC0JQ4qIrLJh8fMibde9xbcEklGwuRxzyh2Lmw4EmhzhaCfKNg+rc4Lc3yf2ZorErL83HIWpm5uiag6ik= 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=b8tDPlNE; arc=none smtp.client-ip=192.19.166.231 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="b8tDPlNE" Received: from mail-lvn-it-01.broadcom.com (mail-lvn-it-01.lvn.broadcom.net [10.36.132.253]) by relay.smtp-ext.broadcom.com (Postfix) with ESMTP id 6F086C0C3BCA; Thu, 17 Sep 2026 17:07:41 -0700 (PDT) DKIM-Filter: OpenDKIM Filter v2.11.0 relay.smtp-ext.broadcom.com 6F086C0C3BCA DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=broadcom.com; s=dkimrelay; t=1789690061; bh=SFwBTmAFjRx28AmNVjEg2GSfw/YyRzh3aFVaWsP2jr0=; h=From:To:Cc:Subject:Date:In-Reply-To:References:From; b=b8tDPlNEecd13MfPXEQhzlH5wuT9RZtobsVnqKhtcZBaGG6Hiba7bjrZWbZW9pDov DSw4nkVkSSLX7wEf7y+NgU8/M1m/VZ5SVS+O67XubehKmF2/D1DDTf/d4u6xyyhNTE x3q1t62OqWo3ezn97v18V/qb7yYWPBiYvW/RiYFs= Received: from stbirv-lnx-1.igp.broadcom.net (stbirv-lnx-1.igp.broadcom.net [10.67.48.32]) (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 mail-lvn-it-01.broadcom.com (Postfix) with ESMTPSA id 4718CAD9; Thu, 17 Sep 2026 17:07:41 -0700 (PDT) From: Florian Fainelli To: netdev@vger.kernel.org Cc: Florian Fainelli , Cursor , Doug Berger , Broadcom internal kernel review list , Andrew Lunn , "David S. Miller" , Eric Dumazet , Jakub Kicinski , Paolo Abeni , Zak Kemble , Simon Horman , Ryo Takakura , linux-kernel@vger.kernel.org (open list), Nicolai Buchwitz Subject: [PATCH net 5/8] net: bcmgenet: acquire ring lock with BH disabled in bcmgenet_dump_tx_queue Date: Thu, 17 Sep 2026 17:07:29 -0700 Message-Id: <20260918000732.276506-6-florian.fainelli@broadcom.com> X-Mailer: git-send-email 2.34.1 In-Reply-To: <20260918000732.276506-1-florian.fainelli@broadcom.com> References: <20260918000732.276506-1-florian.fainelli@broadcom.com> 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 Content-Type: text/plain; charset="utf-8" bcmgenet_dump_tx_queue() is called from bcmgenet_timeout() in process or timer context and acquires ring->lock using spin_lock(). If a softirq such as TX NAPI (bcmgenet_tx_poll()) fires on the same CPU while the lock is held, it will deadlock trying to acquire ring->lock. Use spin_lock_bh() and spin_unlock_bh() in bcmgenet_dump_tx_queue(), matching bcmgenet_tx_reclaim(). Fixes: 13ea657806cf ("net: bcmgenet: improve TX timeout") Assisted-by: LLM Co-authored-by: Cursor Change-Id: I0c4c6392590b2d16abd44f75d3f6974f3e1b874b --- drivers/net/ethernet/broadcom/genet/bcmgenet.c | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/drivers/net/ethernet/broadcom/genet/bcmgenet.c b/drivers/net/e= thernet/broadcom/genet/bcmgenet.c index ef155a170fa6..799da63e3a4e 100644 --- a/drivers/net/ethernet/broadcom/genet/bcmgenet.c +++ b/drivers/net/ethernet/broadcom/genet/bcmgenet.c @@ -3508,14 +3508,14 @@ static void bcmgenet_dump_tx_queue(struct bcmgenet_= tx_ring *ring) =20 txq =3D netdev_get_tx_queue(priv->dev, ring->index); =20 - spin_lock(&ring->lock); + spin_lock_bh(&ring->lock); intsts =3D ~bcmgenet_intrl2_1_readl(priv, INTRL2_CPU_MASK_STATUS); intmsk =3D 1 << ring->index; c_index =3D bcmgenet_tdma_ring_readl(priv, ring->index, TDMA_CONS_INDEX); p_index =3D bcmgenet_tdma_ring_readl(priv, ring->index, TDMA_PROD_INDEX); txq_stopped =3D netif_tx_queue_stopped(txq); free_bds =3D ring->free_bds; - spin_unlock(&ring->lock); + spin_unlock_bh(&ring->lock); =20 netif_err(priv, tx_err, priv->dev, "Ring %d queue %d status summary\n" "TX queue status: %s, interrupts: %s\n" --=20 2.34.1 From nobody Fri Sep 25 00:40:14 2026 Received: from relay.smtp-ext.broadcom.com (relay.smtp-ext.broadcom.com [192.19.166.231]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by smtp.subspace.kernel.org (Postfix) with ESMTPS id B230F30BB8D; Fri, 18 Sep 2026 00:16:14 +0000 (UTC) Authentication-Results: smtp.subspace.kernel.org; arc=none smtp.client-ip=192.19.166.231 ARC-Seal: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1789690578; cv=none; b=RqqEdOc5Gqv69HdRmI7m9TvfeLnPnnqyeTeiFMwJIzRwUaci2PIIG+HqEOAnak/2YKj+6H2YFPvMRpP5WGEV7PjGyKNTjpwkPETLFFVkoqOWXfd61a1HYQVv0822/v/t1iBHi6f/YL50D+HSxTIpQ5RGUEOyYp+Wj4jWyVojlzM= ARC-Message-Signature: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1789690578; c=relaxed/simple; bh=+B/szHm0JdqOqFYXYObPXuCuRITYUel5hBEKnNBAIcQ=; h=From:To:Cc:Subject:Date:Message-Id:In-Reply-To:References: MIME-Version; b=BwoiEJ5DCx9SPvNIVUG1uzkJkoq/KXGeeIpDUxiJuNY72wVbr5HvJZyY0ZYr4HXshd63rfXx0SUCVOzWe/3mfdVOEm6igQUBIMyngrxk9kzrHWkFAYIrq+THyA0Qgymkr5VpfP4ehSOgUUKFVpbI5izo8qJCKljCDzmumyZDMPk= 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=NLLQq2Lb; arc=none smtp.client-ip=192.19.166.231 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="NLLQq2Lb" Received: from mail-lvn-it-01.broadcom.com (mail-lvn-it-01.lvn.broadcom.net [10.36.132.253]) by relay.smtp-ext.broadcom.com (Postfix) with ESMTP id 9EECBC0C3BCB; Thu, 17 Sep 2026 17:07:41 -0700 (PDT) DKIM-Filter: OpenDKIM Filter v2.11.0 relay.smtp-ext.broadcom.com 9EECBC0C3BCB DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=broadcom.com; s=dkimrelay; t=1789690061; bh=+B/szHm0JdqOqFYXYObPXuCuRITYUel5hBEKnNBAIcQ=; h=From:To:Cc:Subject:Date:In-Reply-To:References:From; b=NLLQq2LbFU3fxGPozCbhdUAmLKzoPq+VsKwDhPSlJhCm3sqzzp6NwO88mcmOn/cL6 fsiQFC2jMVm8ojE6JTrSbCGJzoZryGAj/AXdXSrEozXakYHmbiAk847j5YyjoBDpGB uw2ta/mz/LWJdVd0AQe7SQUqZ/acuvXWpsvlmtcc= Received: from stbirv-lnx-1.igp.broadcom.net (stbirv-lnx-1.igp.broadcom.net [10.67.48.32]) (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 mail-lvn-it-01.broadcom.com (Postfix) with ESMTPSA id 76512AE0; Thu, 17 Sep 2026 17:07:41 -0700 (PDT) From: Florian Fainelli To: netdev@vger.kernel.org Cc: Florian Fainelli , Cursor , Doug Berger , Broadcom internal kernel review list , Andrew Lunn , "David S. Miller" , Eric Dumazet , Jakub Kicinski , Paolo Abeni , Zak Kemble , Simon Horman , Ryo Takakura , linux-kernel@vger.kernel.org (open list), Nicolai Buchwitz Subject: [PATCH net 6/8] net: bcmgenet: validate Ethernet address in bcmgenet_set_mac_addr Date: Thu, 17 Sep 2026 17:07:30 -0700 Message-Id: <20260918000732.276506-7-florian.fainelli@broadcom.com> X-Mailer: git-send-email 2.34.1 In-Reply-To: <20260918000732.276506-1-florian.fainelli@broadcom.com> References: <20260918000732.276506-1-florian.fainelli@broadcom.com> 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 Content-Type: text/plain; charset="utf-8" bcmgenet_set_mac_addr() did not check whether the provided MAC address is a valid Ethernet address before applying it. Userspace could configure an invalid address (such as all zeroes or a multicast address) while the interface is down. Add a call to is_valid_ether_addr() and return -EADDRNOTAVAIL if the MAC address is not valid. Fixes: 1c1008c793fa ("net: bcmgenet: add main driver file") Assisted-by: LLM Co-authored-by: Cursor Change-Id: I1cae9178ff2c9243510556f42a194058c10aea7e Reviewed-by: Nicolai Buchwitz --- drivers/net/ethernet/broadcom/genet/bcmgenet.c | 3 +++ 1 file changed, 3 insertions(+) diff --git a/drivers/net/ethernet/broadcom/genet/bcmgenet.c b/drivers/net/e= thernet/broadcom/genet/bcmgenet.c index 799da63e3a4e..90ca4f220cc7 100644 --- a/drivers/net/ethernet/broadcom/genet/bcmgenet.c +++ b/drivers/net/ethernet/broadcom/genet/bcmgenet.c @@ -3635,6 +3635,9 @@ static int bcmgenet_set_mac_addr(struct net_device *d= ev, void *p) if (netif_running(dev)) return -EBUSY; =20 + if (!is_valid_ether_addr(addr->sa_data)) + return -EADDRNOTAVAIL; + eth_hw_addr_set(dev, addr->sa_data); =20 return 0; --=20 2.34.1 From nobody Fri Sep 25 00:40:14 2026 Received: from relay.smtp-ext.broadcom.com (relay.smtp-ext.broadcom.com [192.19.166.231]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by smtp.subspace.kernel.org (Postfix) with ESMTPS id B2CFB30C35F; Fri, 18 Sep 2026 00:16:14 +0000 (UTC) Authentication-Results: smtp.subspace.kernel.org; arc=none smtp.client-ip=192.19.166.231 ARC-Seal: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1789690579; cv=none; b=OroPtII0N58zJkXEFqZ/qH6+NxNrFqOow5N8T9oKIyabhuoXCPz0aLzucYXuOq5B7IyR7/myN6ThDTzRUwrOkx/Yxwv/WTjj4A/Jyo23XA5LmuynrnFvjgXZPcfVRex02UG0xlBLL3GrmMHfVehmY42FoJh0bw29fFkpWxrhSwY= ARC-Message-Signature: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1789690579; c=relaxed/simple; bh=jOu25o70E1s7sO22a6z6WGMnC4RHTu0+1eug8yWKmpg=; h=From:To:Cc:Subject:Date:Message-Id:In-Reply-To:References: MIME-Version; b=U6b4xCC3hl4F5BTBnzS9rotxHpNF5Zkhwr74p3Z7cxo6RMo+JN2T1E8gHEsyBRM2LVUIxzj4D3Wed2CQi1PwlyHqUdH4YAb8BluH+4Rkg9yax6wmENkmUYpkQNAlqLtD8pMu9s4JU+FMWSgLq94vyUB4DF67mktpNoLh9ubvuoE= 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=hYo3vjVN; arc=none smtp.client-ip=192.19.166.231 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="hYo3vjVN" Received: from mail-lvn-it-01.broadcom.com (mail-lvn-it-01.lvn.broadcom.net [10.36.132.253]) by relay.smtp-ext.broadcom.com (Postfix) with ESMTP id CE8ECC0C3BCC; Thu, 17 Sep 2026 17:07:41 -0700 (PDT) DKIM-Filter: OpenDKIM Filter v2.11.0 relay.smtp-ext.broadcom.com CE8ECC0C3BCC DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=broadcom.com; s=dkimrelay; t=1789690061; bh=jOu25o70E1s7sO22a6z6WGMnC4RHTu0+1eug8yWKmpg=; h=From:To:Cc:Subject:Date:In-Reply-To:References:From; b=hYo3vjVN6I5uFDtgJvMHaZT0aBEjFu6d9WjHVj0Zp7G5UrsamkmXHm8UHKMhOV5UL nXkOsI7viq2naxXOVfZzyUcjj46klxcuGzEiHQl/lMSEjb+jM/2y82ymVc3jaMswkT SY7brTR+qhR3aSeboKF22EEqOZ6L5QqBA20Y7uXE= Received: from stbirv-lnx-1.igp.broadcom.net (stbirv-lnx-1.igp.broadcom.net [10.67.48.32]) (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 mail-lvn-it-01.broadcom.com (Postfix) with ESMTPSA id A6521ACC; Thu, 17 Sep 2026 17:07:41 -0700 (PDT) From: Florian Fainelli To: netdev@vger.kernel.org Cc: Florian Fainelli , Cursor , Doug Berger , Broadcom internal kernel review list , Andrew Lunn , "David S. Miller" , Eric Dumazet , Jakub Kicinski , Paolo Abeni , Zak Kemble , Simon Horman , Ryo Takakura , linux-kernel@vger.kernel.org (open list), Nicolai Buchwitz Subject: [PATCH net 7/8] net: bcmgenet: zero-initialize Transmit Status Block in bcmgenet_add_tsb Date: Thu, 17 Sep 2026 17:07:31 -0700 Message-Id: <20260918000732.276506-8-florian.fainelli@broadcom.com> X-Mailer: git-send-email 2.34.1 In-Reply-To: <20260918000732.276506-1-florian.fainelli@broadcom.com> References: <20260918000732.276506-1-florian.fainelli@broadcom.com> 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 Content-Type: text/plain; charset="utf-8" bcmgenet_add_tsb() pushes 64 bytes of headroom onto the skb to form the Transmit Status Block (TSB) but only assigns status->tx_csum_info when skb->ip_summed =3D=3D CHECKSUM_PARTIAL. For packets without checksum offloa= d, or for other fields within struct status_64, the status block contains uninitialized stack/heap memory from previous skb operations. Zero-initialize the status block with memset() after pushing headroom. Fixes: 9a9ba2a4aaaa ("net: bcmgenet: always enable status blocks") Assisted-by: LLM Co-authored-by: Cursor Change-Id: I6935e24408ea10f68eb61dce4cced9b0ead5c005 --- drivers/net/ethernet/broadcom/genet/bcmgenet.c | 1 + 1 file changed, 1 insertion(+) diff --git a/drivers/net/ethernet/broadcom/genet/bcmgenet.c b/drivers/net/e= thernet/broadcom/genet/bcmgenet.c index 90ca4f220cc7..3a6a2f075959 100644 --- a/drivers/net/ethernet/broadcom/genet/bcmgenet.c +++ b/drivers/net/ethernet/broadcom/genet/bcmgenet.c @@ -2084,6 +2084,7 @@ static struct sk_buff *bcmgenet_add_tsb(struct net_de= vice *dev, =20 skb_push(skb, sizeof(*status)); status =3D (struct status_64 *)skb->data; + memset(status, 0, sizeof(*status)); =20 if (skb->ip_summed =3D=3D CHECKSUM_PARTIAL) { ip_ver =3D skb->protocol; --=20 2.34.1 From nobody Fri Sep 25 00:40:14 2026 Received: from relay.smtp-ext.broadcom.com (relay.smtp-ext.broadcom.com [192.19.144.205]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by smtp.subspace.kernel.org (Postfix) with ESMTPS id 94C252D838E; Fri, 18 Sep 2026 00:14:16 +0000 (UTC) Authentication-Results: smtp.subspace.kernel.org; arc=none smtp.client-ip=192.19.144.205 ARC-Seal: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1789690460; cv=none; b=Z3PnCxB3mBu9gIvZd1fTGY1w0JQ4uN7PZFITsgMwlcoGRrJtA1hFtV/c+yAeLoa4dLPsGAJ2mUr0uw83/hicwXJ2JnoM3rOnHsVxyMzNt2aMPMcYjjjT9JQZ2bmbOVwNbrJLXdDv6QdItsdhcYSFHmk+XC1jxrNkszgaHkJxOmA= ARC-Message-Signature: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1789690460; c=relaxed/simple; bh=83IJ8uN/nSOv6r7n2z2yUoVNcx23uvnf9jKFDRwgObI=; h=From:To:Cc:Subject:Date:Message-Id:In-Reply-To:References: MIME-Version; b=OQK+xZbcU5Y5b/JhI7tAuvOahIi/lDYD1GvguU0uSwO6MwVNWvOSDdQt/EjX/J9DKe6/VjAGCCwR34x825i2m0n3MidYyo6YLsDf1HDf1OiHus+KQCSnhuotumSl30u0WG9w2EV0zf/2313OHBaoGJpTwEbg2PYvyxUNS5sP4DY= 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=eb56561R; arc=none smtp.client-ip=192.19.144.205 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="eb56561R" Received: from mail-lvn-it-01.broadcom.com (mail-lvn-it-01.lvn.broadcom.net [10.36.132.253]) by relay.smtp-ext.broadcom.com (Postfix) with ESMTP id 40877C0000F9; Thu, 17 Sep 2026 17:07:42 -0700 (PDT) DKIM-Filter: OpenDKIM Filter v2.11.0 relay.smtp-ext.broadcom.com 40877C0000F9 DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=broadcom.com; s=dkimrelay; t=1789690062; bh=83IJ8uN/nSOv6r7n2z2yUoVNcx23uvnf9jKFDRwgObI=; h=From:To:Cc:Subject:Date:In-Reply-To:References:From; b=eb56561ROYvrPrZldUvgRPZd4OKcmhVaajS5T/ihr1kWdbUW972M9IgXZH0t2Tssb CoDBw5yyvwMCj/KvnAClXxWo3gBJvSUvD/uEJ3vTT8rs2qL7a6HVpaRuGZ/x56hQEe 4bhBiu1mrmU/CqgF5wfKdtOsvlNkDH+6J1AKQpGA= Received: from stbirv-lnx-1.igp.broadcom.net (stbirv-lnx-1.igp.broadcom.net [10.67.48.32]) (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 mail-lvn-it-01.broadcom.com (Postfix) with ESMTPSA id D5929AD9; Thu, 17 Sep 2026 17:07:41 -0700 (PDT) From: Florian Fainelli To: netdev@vger.kernel.org Cc: Florian Fainelli , Cursor , Doug Berger , Broadcom internal kernel review list , Andrew Lunn , "David S. Miller" , Eric Dumazet , Jakub Kicinski , Paolo Abeni , Zak Kemble , Simon Horman , Ryo Takakura , linux-kernel@vger.kernel.org (open list), Nicolai Buchwitz Subject: [PATCH net 8/8] net: bcmgenet: mask DMA_TIMEOUT_MASK when reading DMA_RING0_TIMEOUT Date: Thu, 17 Sep 2026 17:07:32 -0700 Message-Id: <20260918000732.276506-9-florian.fainelli@broadcom.com> X-Mailer: git-send-email 2.34.1 In-Reply-To: <20260918000732.276506-1-florian.fainelli@broadcom.com> References: <20260918000732.276506-1-florian.fainelli@broadcom.com> 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 Content-Type: text/plain; charset="utf-8" bcmgenet_get_coalesce() reads DMA_RING0_TIMEOUT to calculate rx_coalesce_usecs without masking out bits outside DMA_TIMEOUT_MASK (16 bits). If upper bits are non-zero or contain status/flags, the computed value of rx_coalesce_usecs returned to userspace via ethtool becomes corrupted. Mask the register read with DMA_TIMEOUT_MASK before computing the timeout in microseconds. Fixes: 4a29645bfe6c ("net: bcmgenet: Implement RX coalescing control knobs") Assisted-by: LLM Co-authored-by: Cursor Change-Id: I4c5b5019e764dbd0c7e51bd8c7365939a4736e44 Reviewed-by: Nicolai Buchwitz --- drivers/net/ethernet/broadcom/genet/bcmgenet.c | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/drivers/net/ethernet/broadcom/genet/bcmgenet.c b/drivers/net/e= thernet/broadcom/genet/bcmgenet.c index 3a6a2f075959..b15e64a484b4 100644 --- a/drivers/net/ethernet/broadcom/genet/bcmgenet.c +++ b/drivers/net/ethernet/broadcom/genet/bcmgenet.c @@ -852,7 +852,8 @@ static int bcmgenet_get_coalesce(struct net_device *dev, ec->rx_max_coalesced_frames =3D bcmgenet_rdma_ring_readl(priv, 0, DMA_MBUF_DONE_THRESH); ec->rx_coalesce_usecs =3D - bcmgenet_rdma_readl(priv, DMA_RING0_TIMEOUT) * 8192 / 1000; + (bcmgenet_rdma_readl(priv, DMA_RING0_TIMEOUT) & + DMA_TIMEOUT_MASK) * 8192 / 1000; =20 for (i =3D 0; i <=3D priv->hw_params->rx_queues; i++) { ring =3D &priv->rx_rings[i]; --=20 2.34.1