From nobody Thu Sep 24 18:42:11 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 B169A3D76; Mon, 21 Sep 2026 23:14:33 +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=1790032475; cv=none; b=ekCWG5LpJxGjOiE4aEziSZRiyIU2bCu+tbhg4k+w4l1dmXbnK3n0sdHgmvCQ4fqxNv3lr5zU3td+Kx+hoWavzkp2byRb16EQVrhk+LlRNrEPZbi0kFVFzG46gG+ayndaQjTfy937LxQtAn7E3rp4DrMDO8PsNh3lwK+rZbjHJN0= ARC-Message-Signature: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1790032475; c=relaxed/simple; bh=5N398/3mDHZQ9gXLgS0HPtSZVg4D1QaLhP3tV0hav4M=; h=From:To:Cc:Subject:Date:Message-Id:In-Reply-To:References: MIME-Version; b=s38BJlTn31fYoHJWxfMbyKPWfnV/Z89f2gFDz1lGpUbkizEdWMuYJlPPvN7FxZTB4CRRkAlfBjhjS+Vu6rRBWRDxkQRPjd54SsfivIxW+JEl5bxZDgHCoJaM78xGsBMylOopwFnt4vyHx8OC5IlSChCiiuLDOEZIfKwxa6DZe5U= 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=q14wgn0Y; 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="q14wgn0Y" 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 9FB68C0000E4; Mon, 21 Sep 2026 16:14:32 -0700 (PDT) DKIM-Filter: OpenDKIM Filter v2.11.0 relay.smtp-ext.broadcom.com 9FB68C0000E4 DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=broadcom.com; s=dkimrelay; t=1790032472; bh=5N398/3mDHZQ9gXLgS0HPtSZVg4D1QaLhP3tV0hav4M=; h=From:To:Cc:Subject:Date:In-Reply-To:References:From; b=q14wgn0YVs0WL1o0iI7qhLOjl0zHgdO/emgFShGI17UYFIHoGeHFGYtRIGw6boj4K WERZq1J0jtEwS9l/QyWk/qS/Di9Mza4kRJf25o0DpGvlfXe+qHw4FRZtgWRdpa4edB wNb4484g/Wic5P376wdGyQxlKFKAp/VDsAgERG3Y= 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 48AB4AD9; Mon, 21 Sep 2026 16:14:32 -0700 (PDT) From: Florian Fainelli To: netdev@vger.kernel.org Cc: Florian Fainelli , 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 01/12] net: systemport: Fix buffer overflow in bcm_sysport_get_stats() Date: Mon, 21 Sep 2026 16:12:54 -0700 Message-Id: <20260921231305.394773-2-florian.fainelli@broadcom.com> X-Mailer: git-send-email 2.34.1 In-Reply-To: <20260921231305.394773-1-florian.fainelli@broadcom.com> References: <20260921231305.394773-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 running on SYSTEMPORT Lite, certain statistics are unsupported and skipped during bcm_sysport_get_stats(). The variable 'j' tracks the compacted index into the destination data buffer, whereas 'i' iterates over all elements in bcm_sysport_gstrings_stats. Because the buffer allocated by ethtool is sized only according to bcm_sysport_get_sset_count(), storing values at data[i] instead of data[j] writes past the allocated array bounds, leading to memory corruption. Fix this by writing to data[j] instead of data[i]. Fixes: 10377ba7673d ("net: systemport: Support 64bit statistics") Assisted-by: LLM Signed-off-by: Florian Fainelli Reviewed-by: Nicolai Buchwitz --- drivers/net/ethernet/broadcom/bcmsysport.c | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/drivers/net/ethernet/broadcom/bcmsysport.c b/drivers/net/ether= net/broadcom/bcmsysport.c index 4d06c6ba6641..db627cd15fb7 100644 --- a/drivers/net/ethernet/broadcom/bcmsysport.c +++ b/drivers/net/ethernet/broadcom/bcmsysport.c @@ -482,10 +482,10 @@ static void bcm_sysport_get_stats(struct net_device *= dev, s->type =3D=3D BCM_SYSPORT_STAT_NETDEV64) { do { start =3D u64_stats_fetch_begin(syncp); - data[i] =3D *(u64 *)p; + data[j] =3D *(u64 *)p; } while (u64_stats_fetch_retry(syncp, start)); } else - data[i] =3D *(u32 *)p; + data[j] =3D *(u32 *)p; j++; } =20 --=20 2.34.1 From nobody Thu Sep 24 18:42:11 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 7460B47C110; Mon, 21 Sep 2026 23:14:38 +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=1790032481; cv=none; b=AyKcNJHFx/3yPaMYe0KtMe2tQjBqqkXOn/lYB2P1ByWKu8jfUGd9adprbFCCYbvj1/eRSocgpjwcEP1PiwCOSqGOMTPVT9ctcFCscpNKzweYpovnmH5yaVKUgxHbxr1jTzMPVJAs7GlI0XRQTw9HWxx/vdyatAIhCe6w5TTl3S0= ARC-Message-Signature: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1790032481; c=relaxed/simple; bh=v3TAneIUXNK6RM+jO/O4VsMmQ5viuhNfs/4VJDoEAUs=; h=From:To:Cc:Subject:Date:Message-Id:In-Reply-To:References: MIME-Version; b=ZAIiIhjNFT3fSRRU+XYVyrnRtii09yeCPGdXwqy3jD+5TFGiLzXWELxIP0MrXQPQnwOsgakc+pNLbI8jdM7/htNeSdIttlcyfk4/M+kcJSGoHTZ9gkAtjCydOfqa7dx+7+yt6STJVBbADEw0p3YXlu6jUx1mnELYcMIMkajwiXY= 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=mjQIvBcU; 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="mjQIvBcU" 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 9BB11C000D83; Mon, 21 Sep 2026 16:14:32 -0700 (PDT) DKIM-Filter: OpenDKIM Filter v2.11.0 relay.smtp-ext.broadcom.com 9BB11C000D83 DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=broadcom.com; s=dkimrelay; t=1790032472; bh=v3TAneIUXNK6RM+jO/O4VsMmQ5viuhNfs/4VJDoEAUs=; h=From:To:Cc:Subject:Date:In-Reply-To:References:From; b=mjQIvBcUo6ZzzcAA1ZVoBrSVPZeV4q/w4JVdh08mk4qIlFvN7//cq3iTK+ex7kwKq HI/AlWO+t0LENQIUjU/BcxoSFPdxGTCn0EKMxWAULj/FzBMNLOGJ8T3UPlGnZsl3Lw Sz4XSavF6jH+BBQfXwF/f5T+I1CONDRv/YUoHCpo= 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 72D3BAE0; Mon, 21 Sep 2026 16:14:32 -0700 (PDT) From: Florian Fainelli To: netdev@vger.kernel.org Cc: Florian Fainelli , 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 02/12] net: systemport: Fix invalid dev_id argument in bcm_sysport_poll_controller() Date: Mon, 21 Sep 2026 16:12:55 -0700 Message-Id: <20260921231305.394773-3-florian.fainelli@broadcom.com> X-Mailer: git-send-email 2.34.1 In-Reply-To: <20260921231305.394773-1-florian.fainelli@broadcom.com> References: <20260921231305.394773-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" Both bcm_sysport_rx_isr() and bcm_sysport_tx_isr() expect their second argument (dev_id) to be a 'struct net_device *dev', as they call netdev_priv(dev) to retrieve the private data structure. bcm_sysport_poll_controller() was passing 'priv' instead of 'dev', causing netdev_priv() inside the ISRs to treat 'priv' as a net_device, leading to out-of-bounds pointer calculations and crashes when netconsole or netpoll is triggered. Fix this by passing 'dev' instead of 'priv' to the ISRs. Fixes: 6cec4f5e00a3 ("net: systemport: Add netconsole support") Assisted-by: LLM Signed-off-by: Florian Fainelli Reviewed-by: Nicolai Buchwitz --- drivers/net/ethernet/broadcom/bcmsysport.c | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/drivers/net/ethernet/broadcom/bcmsysport.c b/drivers/net/ether= net/broadcom/bcmsysport.c index db627cd15fb7..8328fe824d15 100644 --- a/drivers/net/ethernet/broadcom/bcmsysport.c +++ b/drivers/net/ethernet/broadcom/bcmsysport.c @@ -1198,12 +1198,12 @@ static void bcm_sysport_poll_controller(struct net_= device *dev) struct bcm_sysport_priv *priv =3D netdev_priv(dev); =20 disable_irq(priv->irq0); - bcm_sysport_rx_isr(priv->irq0, priv); + bcm_sysport_rx_isr(priv->irq0, dev); enable_irq(priv->irq0); =20 if (!priv->is_lite) { disable_irq(priv->irq1); - bcm_sysport_tx_isr(priv->irq1, priv); + bcm_sysport_tx_isr(priv->irq1, dev); enable_irq(priv->irq1); } } --=20 2.34.1 From nobody Thu Sep 24 18:42:11 2026 Received: from relay.smtp-ext.broadcom.com (lpdvsmtp12.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 1D8423C0A0D; Mon, 21 Sep 2026 23:14:33 +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=1790032475; cv=none; b=heiQrM1lCQ8VQASsTHwxztje+PyhYPyjppW8BqBm3Shy8HEqEH3hEZZvexC3Lor9eogJsJj1nweIITiVVsly0aC41z41OjWx4CJSwX/lCms0/SwROYPW3oz5m9VXY7V052z/Y65vu/2sJ8PKvFRnbnrxQy71yf6D5Acr8ANFKWQ= ARC-Message-Signature: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1790032475; c=relaxed/simple; bh=UgYl0YhYKb1VNKwc8fIa8T3s/cHk5WBvHPIRzAH/X+4=; h=From:To:Cc:Subject:Date:Message-Id:In-Reply-To:References: MIME-Version; b=OUfdiOIzyBR45Xn0i0dpOb/7k+z6zmFry0esNXrFRlu0PTfOEWb8BAHecCTbuVlY+h42fzWLlyiwXo76pFAHQBYozUX0U5rVVMD1HfQ/mnioVvSUqr6qUnq9kdfKhEr5UFXISOmdKeTAITuPZ6+s94YhiohYEZlAYvFAwRqfZRw= 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=IPc86kmk; 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="IPc86kmk" 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 0219FC0000E7; Mon, 21 Sep 2026 16:14:33 -0700 (PDT) DKIM-Filter: OpenDKIM Filter v2.11.0 relay.smtp-ext.broadcom.com 0219FC0000E7 DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=broadcom.com; s=dkimrelay; t=1790032473; bh=UgYl0YhYKb1VNKwc8fIa8T3s/cHk5WBvHPIRzAH/X+4=; h=From:To:Cc:Subject:Date:In-Reply-To:References:From; b=IPc86kmkq9kSO/cdT1u1m3f7Y84UePSbV9uf3L3PnfD/aSqexEe/WwVFv1hRgDwpI xlrt9C08JXE3q22frGLX+QUiu/HdhGLr8soyt3SrW6YzlIKSG6MGKsjDuwybiU91HQ 8NntI7VCSckymwiVBZnRaHYjJguwATlbGWQeLOVY= 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 9D6E8ACC; Mon, 21 Sep 2026 16:14:32 -0700 (PDT) From: Florian Fainelli To: netdev@vger.kernel.org Cc: Florian Fainelli , 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 03/12] net: systemport: Fix NULL pointer dereference in bcm_sysport_fini_rx_ring() Date: Mon, 21 Sep 2026 16:12:56 -0700 Message-Id: <20260921231305.394773-4-florian.fainelli@broadcom.com> X-Mailer: git-send-email 2.34.1 In-Reply-To: <20260921231305.394773-1-florian.fainelli@broadcom.com> References: <20260921231305.394773-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" If allocation of priv->rx_cbs fails during bcm_sysport_init_rx_ring(), error unwinding in bcm_sysport_open() calls bcm_sysport_fini_rx_ring(). Without checking if priv->rx_cbs is non-NULL, bcm_sysport_fini_rx_ring() dereferences priv->rx_cbs, resulting in a NULL pointer dereference. Add a check for !priv->rx_cbs at the beginning of bcm_sysport_fini_rx_ring(), matching bcm_sysport_fini_tx_ring(). Fixes: 80105befdb4b ("net: systemport: add Broadcom SYSTEMPORT Ethernet MAC= driver") Assisted-by: LLM Signed-off-by: Florian Fainelli Reviewed-by: Nicolai Buchwitz --- drivers/net/ethernet/broadcom/bcmsysport.c | 3 +++ 1 file changed, 3 insertions(+) diff --git a/drivers/net/ethernet/broadcom/bcmsysport.c b/drivers/net/ether= net/broadcom/bcmsysport.c index 8328fe824d15..b91a57540f55 100644 --- a/drivers/net/ethernet/broadcom/bcmsysport.c +++ b/drivers/net/ethernet/broadcom/bcmsysport.c @@ -1717,6 +1717,9 @@ static void bcm_sysport_fini_rx_ring(struct bcm_syspo= rt_priv *priv) if (!(reg & RDMA_DISABLED)) netdev_warn(priv->netdev, "RDMA not stopped!\n"); =20 + if (!priv->rx_cbs) + return; + for (i =3D 0; i < priv->num_rx_bds; i++) { cb =3D &priv->rx_cbs[i]; if (dma_unmap_addr(cb, dma_addr)) --=20 2.34.1 From nobody Thu Sep 24 18:42:11 2026 Received: from relay.smtp-ext.broadcom.com (lpdvsmtp10.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 468D747668A; Mon, 21 Sep 2026 23:14:39 +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=1790032486; cv=none; b=QDuGVSmSjZw3f8P8+XuKdFHBXHc5gb705QoohiwKn6dzluf99BgSRrr8V4yacSX/QlcJE8Z3JxRrtcJd8/2w9XvhW4STCIxrgHv7Vt5EQTh/vUM53zkF9aHfoGGq2Zfk1qT6+uTjc3y+o6JhmUhzA3LphgsrC11PZpy57jY1j2o= ARC-Message-Signature: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1790032486; c=relaxed/simple; bh=vSEpRx87+JJSHfzugsNccsnqXxh50JVHNdY5tCgVU1U=; h=From:To:Cc:Subject:Date:Message-Id:In-Reply-To:References: MIME-Version; b=RzhPwtHY8WCX7cGwVKQeJ3z7d4/WCMQJr8IvvWENOemXJo2i5YAzFO/JBW1hNvFU979m/tFf3MRUTv34cwAXftz06VSbOtastk5t2XdqEDFIci2D/ciHj7rbgR9qfs65atZfmBWXsq6MyPtu8ehPmzzy+VypxXRVk4ml+sdd9+4= 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=T+Jv+IgY; 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="T+Jv+IgY" 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 2A887C0000F5; Mon, 21 Sep 2026 16:14:33 -0700 (PDT) DKIM-Filter: OpenDKIM Filter v2.11.0 relay.smtp-ext.broadcom.com 2A887C0000F5 DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=broadcom.com; s=dkimrelay; t=1790032473; bh=vSEpRx87+JJSHfzugsNccsnqXxh50JVHNdY5tCgVU1U=; h=From:To:Cc:Subject:Date:In-Reply-To:References:From; b=T+Jv+IgYP2hzqYk71hKSPD+7MZxpmDz4swEfUCtF34llmtnLYp4c7mA9gRaJBJKzn ZrKUL9fbz5YLJDZfSYiJUWfRp9O4KlYl1a6Z2Y2vZzSUN/rl4+jcLKH4y8wK8TG9fh 3yF4wGBUnHec3XLgFbute9nwRsOKUXIhMJra46UQ= 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 C7309AD9; Mon, 21 Sep 2026 16:14:32 -0700 (PDT) From: Florian Fainelli To: netdev@vger.kernel.org Cc: Florian Fainelli , 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 04/12] net: systemport: Fix missing phy-handle parsing for non-fixed PHYs Date: Mon, 21 Sep 2026 16:12:57 -0700 Message-Id: <20260921231305.394773-5-florian.fainelli@broadcom.com> X-Mailer: git-send-email 2.34.1 In-Reply-To: <20260921231305.394773-1-florian.fainelli@broadcom.com> References: <20260921231305.394773-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" In bcm_sysport_probe(), priv->phy_dn is only initialized if the device tree node has a fixed-link configuration (of_phy_is_fixed_link). When connecting to a discrete MDIO-attached PHY referenced via 'phy-handle', priv->phy_dn remains NULL. This causes of_phy_connect() during bcm_sysport_open() to fail with -ENODEV since of_phy_find_device(NULL) returns NULL. Fix this by parsing 'phy-handle' via of_parse_phandle() and falling back to of_phy_is_fixed_link(). Ensure proper of_node_get() and of_node_put() refcounting lifecycle on both error unwinding and module remove paths. Fixes: 186534a3f832 ("net: systemport: use the new fixed PHY helpers") Assisted-by: LLM Signed-off-by: Florian Fainelli --- drivers/net/ethernet/broadcom/bcmsysport.c | 8 ++++++-- 1 file changed, 6 insertions(+), 2 deletions(-) diff --git a/drivers/net/ethernet/broadcom/bcmsysport.c b/drivers/net/ether= net/broadcom/bcmsysport.c index b91a57540f55..78b96b192185 100644 --- a/drivers/net/ethernet/broadcom/bcmsysport.c +++ b/drivers/net/ethernet/broadcom/bcmsysport.c @@ -2527,17 +2527,19 @@ static int bcm_sysport_probe(struct platform_device= *pdev) if (ret) priv->phy_interface =3D PHY_INTERFACE_MODE_GMII; =20 + priv->phy_dn =3D of_parse_phandle(dn, "phy-handle", 0); + /* In the case of a fixed PHY, the DT node associated * to the PHY is the Ethernet MAC DT node. */ - if (of_phy_is_fixed_link(dn)) { + if (!priv->phy_dn && of_phy_is_fixed_link(dn)) { ret =3D of_phy_register_fixed_link(dn); if (ret) { dev_err(&pdev->dev, "failed to register fixed PHY\n"); goto err_free_netdev; } =20 - priv->phy_dn =3D dn; + priv->phy_dn =3D of_node_get(dn); } =20 /* Initialize netdevice members */ @@ -2622,6 +2624,7 @@ static int bcm_sysport_probe(struct platform_device *= pdev) err_deregister_fixed_link: if (of_phy_is_fixed_link(dn)) of_phy_deregister_fixed_link(dn); + of_node_put(priv->phy_dn); err_free_netdev: free_netdev(dev); return ret; @@ -2640,6 +2643,7 @@ static void bcm_sysport_remove(struct platform_device= *pdev) unregister_netdev(dev); if (of_phy_is_fixed_link(dn)) of_phy_deregister_fixed_link(dn); + of_node_put(priv->phy_dn); free_netdev(dev); dev_set_drvdata(&pdev->dev, NULL); } --=20 2.34.1 From nobody Thu Sep 24 18:42:11 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 03180472079; Mon, 21 Sep 2026 23:14:39 +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=1790032481; cv=none; b=Nu59hWhlteNewjdhkpujchCZInYGf1VzrIjpEufGiy3CXHDPEb9De7Fdc7gM5XnDLR6jVHNmoxUYkkLBcWdQa69PXdI2nuAVFRzYEnG27W1UQXDgjf71aT4t2uFeD/80bSLhGkZPjTtJ3B3fSe0Futz1O8Cw3gDcd3NybdMcR5c= ARC-Message-Signature: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1790032481; c=relaxed/simple; bh=+2lz5Ib/AOivyKV/aiz2gUyK2CUnonhtaoEzTb66ros=; h=From:To:Cc:Subject:Date:Message-Id:In-Reply-To:References: MIME-Version; b=oDb08ma9zqfl52X4yWTOWDKAUEvzXLYHCgRHJvcOOBRUfmCJQKotHCdiwqs2mSlXBiRErhBnddEG0jWPkPzm0ixh06NIEEKeu0qlxr5KS870HVgcDa6C+25371S6WhvYCZvKA4z19tUW8gj3Z7jUEQorTaOUOCBfKmlbgo3IBLQ= 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=iVZFgctk; 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="iVZFgctk" 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 258C9C000D84; Mon, 21 Sep 2026 16:14:33 -0700 (PDT) DKIM-Filter: OpenDKIM Filter v2.11.0 relay.smtp-ext.broadcom.com 258C9C000D84 DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=broadcom.com; s=dkimrelay; t=1790032473; bh=+2lz5Ib/AOivyKV/aiz2gUyK2CUnonhtaoEzTb66ros=; h=From:To:Cc:Subject:Date:In-Reply-To:References:From; b=iVZFgctkwiZCZeHkCtnEMvHOyLjUCE4tb0STR1rBnpv21JuJ+F7l5dmwQlJMDZiCr 9Wsz3h9tayC+PItcbdLIVj6GK0pNtr/wc+CxZQ5tXYEgbrj5hvXvEF3vMM/QVnuOB/ QE1aPB2OvSMNuXFheYZpnL6Ss7ISdIMDPFMn0UNk= 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 F1B96AE0; Mon, 21 Sep 2026 16:14:32 -0700 (PDT) From: Florian Fainelli To: netdev@vger.kernel.org Cc: Florian Fainelli , 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 05/12] net: systemport: Fix Wake-on-LAN RXCHK filter enable loop Date: Mon, 21 Sep 2026 16:12:58 -0700 Message-Id: <20260921231305.394773-6-florian.fainelli@broadcom.com> X-Mailer: git-send-email 2.34.1 In-Reply-To: <20260921231305.394773-1-florian.fainelli@broadcom.com> References: <20260921231305.394773-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" In bcm_sysport_suspend_to_wol(), the loop enabling programmed RXCHK filters in RXCHK_CONTROL used an auxiliary counter 'i' instead of the actual set filter index 'index'. When non-contiguous filters were configured (for example, if filter 0 was deleted and filter 1 remained), the code would enable bit (RXCHK_BRCM_TAG_MATCH_SHIFT + 0) corresponding to filter 0 rather than filter 1, causing Wake-on-LAN filter matching to fail. Fix this by using the filter 'index' to set the appropriate match bit in RXCHK_CONTROL. Fixes: bb9051a2b230 ("net: systemport: Add support for WAKE_FILTER") Assisted-by: LLM Signed-off-by: Florian Fainelli Reviewed-by: Nicolai Buchwitz --- drivers/net/ethernet/broadcom/bcmsysport.c | 8 +++----- 1 file changed, 3 insertions(+), 5 deletions(-) diff --git a/drivers/net/ethernet/broadcom/bcmsysport.c b/drivers/net/ether= net/broadcom/bcmsysport.c index 78b96b192185..7f2e5e4efb8d 100644 --- a/drivers/net/ethernet/broadcom/bcmsysport.c +++ b/drivers/net/ethernet/broadcom/bcmsysport.c @@ -2652,7 +2652,7 @@ static int bcm_sysport_suspend_to_wol(struct bcm_sysp= ort_priv *priv) { struct net_device *ndev =3D priv->netdev; unsigned int timeout =3D 1000; - unsigned int index, i =3D 0; + unsigned int index; u32 reg; =20 reg =3D umac_readl(priv, UMAC_MPD_CTRL); @@ -2682,10 +2682,8 @@ static int bcm_sysport_suspend_to_wol(struct bcm_sys= port_priv *priv) reg =3D rxchk_readl(priv, RXCHK_CONTROL); reg &=3D ~(RXCHK_BRCM_TAG_MATCH_MASK << RXCHK_BRCM_TAG_MATCH_SHIFT); - for_each_set_bit(index, priv->filters, RXCHK_BRCM_TAG_MAX) { - reg |=3D BIT(RXCHK_BRCM_TAG_MATCH_SHIFT + i); - i++; - } + for_each_set_bit(index, priv->filters, RXCHK_BRCM_TAG_MAX) + reg |=3D BIT(RXCHK_BRCM_TAG_MATCH_SHIFT + index); reg |=3D RXCHK_EN | RXCHK_BRCM_TAG_EN; rxchk_writel(priv, reg, RXCHK_CONTROL); } --=20 2.34.1 From nobody Thu Sep 24 18:42:11 2026 Received: from relay.smtp-ext.broadcom.com (lpdvsmtp12.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 6648B423A85; Mon, 21 Sep 2026 23:14:34 +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=1790032475; cv=none; b=qsoAZPS71Ii91BjsZTb5lbKuWXd9yqBoFBCLsXmFRcSleKtWd2c+wBQjonpGi1czJPYXmFV/EBXvAOofrK/TqaxolzYPKA6/VMcVacdMsEXUJKi9t2LXGUC0W5XEKGnTim7xTQe2m7zlI3YSKJWV1BFHEw0YiZgung5/QkFC0Vw= ARC-Message-Signature: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1790032475; c=relaxed/simple; bh=XRaIaMoUZ6vQdkmc8nbBXkww6TUHH1MvJdGAD6pQ4LI=; h=From:To:Cc:Subject:Date:Message-Id:In-Reply-To:References: MIME-Version; b=TxsE4cZcbmbceBNqjmO2wUOUEusEyKPQkqveaFV7CtQK1IVMi5Uu6eb50K5rrLecLVRb/QWH49rqluAmdHrqDfP/++6pfWG05zLq8YY+f0tXxZ/tM353DIPUMafTYsPPcpPTkZl1k/VR/lrl0RBH8nZolE5mGntz7oy08LaT7KE= 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=czgAinJr; 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="czgAinJr" 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 64E7BC0000E8; Mon, 21 Sep 2026 16:14:33 -0700 (PDT) DKIM-Filter: OpenDKIM Filter v2.11.0 relay.smtp-ext.broadcom.com 64E7BC0000E8 DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=broadcom.com; s=dkimrelay; t=1790032473; bh=XRaIaMoUZ6vQdkmc8nbBXkww6TUHH1MvJdGAD6pQ4LI=; h=From:To:Cc:Subject:Date:In-Reply-To:References:From; b=czgAinJrzC5ksjjq1a9NlCZ+G3UX7wVXSFoLGkUtqfgtgfF944hycQh7dzNIWuAtj ef4QkiKx+jYuu8+gGCHtdMTrmOYPkXquP++kyh69i2XhPV6PH5rJ6wMB7VixHVD+ZA cNZbEkx+CFhaNjZFgLVdUJSDEgH4zd0fftmT/Q1o= 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 2B563ACC; Mon, 21 Sep 2026 16:14:33 -0700 (PDT) From: Florian Fainelli To: netdev@vger.kernel.org Cc: Florian Fainelli , 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 06/12] net: systemport: Fix RUNT MIB counter register offset calculation Date: Mon, 21 Sep 2026 16:12:59 -0700 Message-Id: <20260921231305.394773-7-florian.fainelli@broadcom.com> X-Mailer: git-send-email 2.34.1 In-Reply-To: <20260921231305.394773-1-florian.fainelli@broadcom.com> References: <20260921231305.394773-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" In UniMAC hardware, there is a 0xC byte gap between the RX MIB counters and the TX MIB counters, and a second 0xC byte gap between the TX MIB counters and the RX RUNT MIB counters. In bcm_sysport_update_mib_counters(), 'offset' was only set to UMAC_MIB_STAT_OFFSET (0xC) for all non-RX counters, omitting the second 0xC gap for BCM_SYSPORT_STAT_RUNT counters. As a result, all 4 RUNT MIB counters were read from unmapped gap register space. Fix this by setting offset to 2 * UMAC_MIB_STAT_OFFSET (0x18) when reading BCM_SYSPORT_STAT_RUNT counters. Fixes: 80105befdb4b ("net: systemport: add Broadcom SYSTEMPORT Ethernet MAC= driver") Assisted-by: LLM Signed-off-by: Florian Fainelli Reviewed-by: Nicolai Buchwitz --- drivers/net/ethernet/broadcom/bcmsysport.c | 4 +++- 1 file changed, 3 insertions(+), 1 deletion(-) diff --git a/drivers/net/ethernet/broadcom/bcmsysport.c b/drivers/net/ether= net/broadcom/bcmsysport.c index 7f2e5e4efb8d..b69833d34bd5 100644 --- a/drivers/net/ethernet/broadcom/bcmsysport.c +++ b/drivers/net/ethernet/broadcom/bcmsysport.c @@ -391,8 +391,10 @@ static void bcm_sysport_update_mib_counters(struct bcm= _sysport_priv *priv) if (priv->is_lite) continue; =20 - if (s->type !=3D BCM_SYSPORT_STAT_MIB_RX) + if (s->type =3D=3D BCM_SYSPORT_STAT_MIB_TX) offset =3D UMAC_MIB_STAT_OFFSET; + else if (s->type =3D=3D BCM_SYSPORT_STAT_RUNT) + offset =3D 2 * UMAC_MIB_STAT_OFFSET; val =3D umac_readl(priv, UMAC_MIB_START + j + offset); break; case BCM_SYSPORT_STAT_RXCHK: --=20 2.34.1 From nobody Thu Sep 24 18:42:11 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 03E764756BB; Mon, 21 Sep 2026 23:14:39 +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=1790032483; cv=none; b=Q7fnKK/lMXWGsKN59pzGyBqJ5/3nWFASu2+U5NzIfaVK9fagMRMvmG3lwyZIpkqF59uivtFHvVZ5FH3sKPltsxdg18DRyvHxPssW+pEq8a5uoPvPjhQDkW5cEaV8Es7KFtznWmEXlr6d73Y1la2mvzkYlMswShlW8gb7SMvVnro= ARC-Message-Signature: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1790032483; c=relaxed/simple; bh=4KHTSHt2fx+tQth8nGkiLtxWijpx7L69RbtnLLBuXtY=; h=From:To:Cc:Subject:Date:Message-Id:In-Reply-To:References: MIME-Version; b=tpeMSCJKCdvjgcFQmanzV6bUGcnr22U6IpkzIc9xJo5OPJ/vJRc/9o93cbEgdZWPxnRZutw38fuu/n4tvHikb4NZuWcNH6ab/sNzD+i1XRkH+jCv4kvfh9MbIEEONecF8I4ZqCBY0BjITZr751rDsmGIJsbuA0DN0vUg8OYl6vU= 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=GvTFIYO9; 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="GvTFIYO9" 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 79505C000D85; Mon, 21 Sep 2026 16:14:33 -0700 (PDT) DKIM-Filter: OpenDKIM Filter v2.11.0 relay.smtp-ext.broadcom.com 79505C000D85 DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=broadcom.com; s=dkimrelay; t=1790032473; bh=4KHTSHt2fx+tQth8nGkiLtxWijpx7L69RbtnLLBuXtY=; h=From:To:Cc:Subject:Date:In-Reply-To:References:From; b=GvTFIYO9fJJU2kNdEBAfhMj1XC2nD8Jyvad51d9vAqfllje61OTjku7vJkG081kEn 2WhwKy9sqdjpQm+AzRvrIVgBrDneBqhIo3DNpomoPuTzuAWNoi6029Mv723RLNBdTA TZjHznix8mmpbi5aHygO6zvhml9yaSou9Dxvrkx4= 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 564E1AD9; Mon, 21 Sep 2026 16:14:33 -0700 (PDT) From: Florian Fainelli To: netdev@vger.kernel.org Cc: Florian Fainelli , 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 07/12] net: systemport: Fix potential packet length underflow in bcm_sysport_desc_rx() Date: Mon, 21 Sep 2026 16:13:00 -0700 Message-Id: <20260921231305.394773-8-florian.fainelli@broadcom.com> X-Mailer: git-send-email 2.34.1 In-Reply-To: <20260921231305.394773-1-florian.fainelli@broadcom.com> References: <20260921231305.394773-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" In bcm_sysport_desc_rx(), the packet length 'len' extracted from the RSB is only validated against RX_BUF_LENGTH. If a malformed or corrupted frame is received with 'len' smaller than the prepended Receive Status Block (sizeof(*rsb)) plus 2 padding bytes (and optional FCS), calling skb_pull() will trigger a BUG() in __skb_pull() when pulling beyond skb->len. Furthermore, subtracting (sizeof(*rsb) + 2) from 'len' (u16) will underflow, resulting in corrupted packet stats and potential out-of-bounds operations. Fix this by ensuring 'len' is at least sizeof(*rsb) + 2 (plus ETH_FCS_LEN if CRC forward is enabled) before proceeding. Fixes: 80105befdb4b ("net: systemport: add Broadcom SYSTEMPORT Ethernet MAC= driver") Assisted-by: LLM Signed-off-by: Florian Fainelli --- drivers/net/ethernet/broadcom/bcmsysport.c | 5 +++-- 1 file changed, 3 insertions(+), 2 deletions(-) diff --git a/drivers/net/ethernet/broadcom/bcmsysport.c b/drivers/net/ether= net/broadcom/bcmsysport.c index b69833d34bd5..95cead1df160 100644 --- a/drivers/net/ethernet/broadcom/bcmsysport.c +++ b/drivers/net/ethernet/broadcom/bcmsysport.c @@ -781,8 +781,9 @@ static unsigned int bcm_sysport_desc_rx(struct bcm_sysp= ort_priv *priv, p_index, priv->rx_c_index, priv->rx_read_ptr, len, status); =20 - if (unlikely(len > RX_BUF_LENGTH)) { - netif_err(priv, rx_status, ndev, "oversized packet\n"); + if (unlikely(len > RX_BUF_LENGTH || + len < sizeof(*rsb) + 2 + (priv->crc_fwd ? ETH_FCS_LEN : 0))) { + netif_err(priv, rx_status, ndev, "invalid packet size: %d\n", len); ndev->stats.rx_length_errors++; ndev->stats.rx_errors++; dev_kfree_skb_any(skb); --=20 2.34.1 From nobody Thu Sep 24 18:42:11 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 37D2D47A879; Mon, 21 Sep 2026 23:14:40 +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=1790032486; cv=none; b=tXLCx8JQBC4jhIjlMoRtIIAXSrKFVW8Npn5b4aFOHRDOUwFu4FcgFBIANTab7Qm71G7s95poDHBlq2UWF7CgVeP0wEzgK27LF/H9hm2DweEThbAX9EyVLya3P6c7O/paCteZjhH9J9cgHEROXVD96/MDo5njKT/b4sA09YL/MOw= ARC-Message-Signature: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1790032486; c=relaxed/simple; bh=vDKmTzkGtP1cB2iH4f7hWZnc1WPsAD1Ft2ktBtCfJDg=; h=From:To:Cc:Subject:Date:Message-Id:In-Reply-To:References: MIME-Version; b=DbuyhcPyWFJoD3JZqOYlQ2YglvIc4/ROnB9qZTortYKRivQ7/9p/W9HMm22zunftwSJtx1sfqBpK5T9arFP7OUdXCWlEvE0vc8uHuyDuefdrmXd8fYWNzAtDGkP6mL4fALOBBg8995TjjVhoCHvyffDOsu0csL3ue+oCKsEUTgw= 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=jw85u2Cd; 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="jw85u2Cd" 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 D2DB5C000D86; Mon, 21 Sep 2026 16:14:33 -0700 (PDT) DKIM-Filter: OpenDKIM Filter v2.11.0 relay.smtp-ext.broadcom.com D2DB5C000D86 DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=broadcom.com; s=dkimrelay; t=1790032473; bh=vDKmTzkGtP1cB2iH4f7hWZnc1WPsAD1Ft2ktBtCfJDg=; h=From:To:Cc:Subject:Date:In-Reply-To:References:From; b=jw85u2CdtvTxqdIbLnT6CbdzXx76eYWZkOpc9m1dxMKlUgvQvAYgMQ6fU4Rsr3XH8 0TH0kMMOgsDH2BxiV2XgYr4QGtMHzat0hw3FjK+RbwY5vRh1FPgzbb0npOevbOAqI7 zEBs88VFC9N3LSNzhPThl69j3WTJ2Qq+fh9noGfI= 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 810ABAE0; Mon, 21 Sep 2026 16:14:33 -0700 (PDT) From: Florian Fainelli To: netdev@vger.kernel.org Cc: Florian Fainelli , 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 08/12] net: systemport: Fix out-of-bounds array accesses in DSA queue mapping Date: Mon, 21 Sep 2026 16:13:01 -0700 Message-Id: <20260921231305.394773-9-florian.fainelli@broadcom.com> X-Mailer: git-send-email 2.34.1 In-Reply-To: <20260921231305.394773-1-florian.fainelli@broadcom.com> References: <20260921231305.394773-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" The priv->ring_map array has a fixed size of (DSA_MAX_PORTS * 8). In bcm_sysport_select_queue(), bcm_sysport_map_queues(), and bcm_sysport_unmap_queues(), indices calculated as (qp + port * num_tx_queues) were accessed without checking against ARRAY_SIZE(priv->ring_map). If unusual port or queue configurations are encountered, this could lead to out-of-bounds array accesses. Additionally, on SYSTEMPORT Lite, netif_set_real_num_tx_queues() was called with slave_dev->num_tx_queues / 2, which could evaluate to 0 if slave_dev->num_tx_queues is 1, causing netif_set_real_num_tx_queues() to fail with -EINVAL. Fix these by clamping the real number of queues to at least 1 and adding bounds checks on priv->ring_map. Fixes: d156576362c0 ("net: systemport: Establish lower/upper queue mapping") Assisted-by: LLM Signed-off-by: Florian Fainelli --- drivers/net/ethernet/broadcom/bcmsysport.c | 16 +++++++++++----- 1 file changed, 11 insertions(+), 5 deletions(-) diff --git a/drivers/net/ethernet/broadcom/bcmsysport.c b/drivers/net/ether= net/broadcom/bcmsysport.c index 95cead1df160..130545cce045 100644 --- a/drivers/net/ethernet/broadcom/bcmsysport.c +++ b/drivers/net/ethernet/broadcom/bcmsysport.c @@ -2273,7 +2273,7 @@ static u16 bcm_sysport_select_queue(struct net_device= *dev, struct sk_buff *skb, struct bcm_sysport_priv *priv =3D netdev_priv(dev); u16 queue =3D skb_get_queue_mapping(skb); struct bcm_sysport_tx_ring *tx_ring; - unsigned int q, port; + unsigned int q, port, index; =20 if (!netdev_uses_dsa(dev)) return netdev_pick_tx(dev, skb, NULL); @@ -2281,8 +2281,11 @@ static u16 bcm_sysport_select_queue(struct net_devic= e *dev, struct sk_buff *skb, /* DSA tagging layer will have configured the correct queue */ q =3D BRCM_TAG_GET_QUEUE(queue); port =3D BRCM_TAG_GET_PORT(queue); - tx_ring =3D priv->ring_map[q + port * priv->per_port_num_tx_queues]; + index =3D q + port * priv->per_port_num_tx_queues; + if (unlikely(index >=3D ARRAY_SIZE(priv->ring_map))) + return netdev_pick_tx(dev, skb, NULL); =20 + tx_ring =3D priv->ring_map[index]; if (unlikely(!tx_ring)) return netdev_pick_tx(dev, skb, NULL); =20 @@ -2329,7 +2332,8 @@ static int bcm_sysport_map_queues(struct net_device *= dev, */ if (priv->is_lite) netif_set_real_num_tx_queues(slave_dev, - slave_dev->num_tx_queues / 2); + max_t(unsigned int, 1, + slave_dev->num_tx_queues / 2)); =20 num_tx_queues =3D slave_dev->real_num_tx_queues; =20 @@ -2352,7 +2356,8 @@ static int bcm_sysport_map_queues(struct net_device *= dev, ring->switch_queue =3D qp; ring->switch_port =3D port; ring->inspect =3D true; - priv->ring_map[qp + port * num_tx_queues] =3D ring; + if (qp + port * num_tx_queues < ARRAY_SIZE(priv->ring_map)) + priv->ring_map[qp + port * num_tx_queues] =3D ring; qp++; } =20 @@ -2383,7 +2388,8 @@ static int bcm_sysport_unmap_queues(struct net_device= *dev, =20 ring->inspect =3D false; qp =3D ring->switch_queue; - priv->ring_map[qp + port * num_tx_queues] =3D NULL; + if (qp + port * num_tx_queues < ARRAY_SIZE(priv->ring_map)) + priv->ring_map[qp + port * num_tx_queues] =3D NULL; } =20 return 0; --=20 2.34.1 From nobody Thu Sep 24 18:42:11 2026 Received: from relay.smtp-ext.broadcom.com (lpdvsmtp12.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 2BA4C425CD2; Mon, 21 Sep 2026 23:14:35 +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=1790032476; cv=none; b=H5JF+HTZ27vv0BJjd3gV+vtM899cbKgTJ+L/MAWCTJJ22Hpggbb6ZrZq+HjtUJ8jnnOn+3BuDvGAgBbwVo5GbRAt102rBNWoy1wkTH5xUisERrbris1RtQnypddDrjqAXfDjiNwW/4gznIJvDQFr7MYtKpJeTBIUHumEWnuhWE8= ARC-Message-Signature: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1790032476; c=relaxed/simple; bh=d1baMmvN6EUkR/FHwY6K4p5Nu6ow44Fl2QIjowV6JqI=; h=From:To:Cc:Subject:Date:Message-Id:In-Reply-To:References: MIME-Version; b=YoyFLbUQVu/HHoW4g7r6VGVCdTjaSQNVjCKJBAxPoxbAkaH1pspaAKT8JGm1nNo8JSHtSiEDBlxoqZT0pd9NiDr7MnWbMK8VWajd5AW01NMq56YvXDBqHWw5gLOczX5dKGZdirsz6hxI8yqZBtGNgbaSQJvoXO8X32yGCkolkJw= 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=WigRtIQY; 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="WigRtIQY" 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 175EEC0000EA; Mon, 21 Sep 2026 16:14:34 -0700 (PDT) DKIM-Filter: OpenDKIM Filter v2.11.0 relay.smtp-ext.broadcom.com 175EEC0000EA DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=broadcom.com; s=dkimrelay; t=1790032474; bh=d1baMmvN6EUkR/FHwY6K4p5Nu6ow44Fl2QIjowV6JqI=; h=From:To:Cc:Subject:Date:In-Reply-To:References:From; b=WigRtIQYKSFirlHokq4qpw9mB5NTifQReoUwDOn2CKBSohVvdIlkl2M+zN7Qe17+Y zCz6aSsQEvmWLM+xyGJTzm97I86gGMyim8XpC957XYvrmkYMg/qMkVqTMB8geYicGQ DqYjXUGVpeaai08cplLR3jcIrWrduvOFwIE40+7M= 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 AC15EACC; Mon, 21 Sep 2026 16:14:33 -0700 (PDT) From: Florian Fainelli To: netdev@vger.kernel.org Cc: Florian Fainelli , 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 09/12] net: systemport: Fix inverted error messages in bcm_sysport_stop() Date: Mon, 21 Sep 2026 16:13:02 -0700 Message-Id: <20260921231305.394773-10-florian.fainelli@broadcom.com> X-Mailer: git-send-email 2.34.1 In-Reply-To: <20260921231305.394773-1-florian.fainelli@broadcom.com> References: <20260921231305.394773-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" In bcm_sysport_stop(), the error messages printed when tdma_enable_set() and rdma_enable_set() time out were inverted: the failure of tdma_enable_set() logged 'timeout disabling RDMA' and the failure of rdma_enable_set() logged 'timeout disabling TDMA'. Swap the error messages so they correctly describe the failing engine. Fixes: 80105befdb4b ("net: systemport: add Broadcom SYSTEMPORT Ethernet MAC= driver") Assisted-by: LLM Signed-off-by: Florian Fainelli Reviewed-by: Nicolai Buchwitz --- drivers/net/ethernet/broadcom/bcmsysport.c | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/drivers/net/ethernet/broadcom/bcmsysport.c b/drivers/net/ether= net/broadcom/bcmsysport.c index 130545cce045..384423b312ca 100644 --- a/drivers/net/ethernet/broadcom/bcmsysport.c +++ b/drivers/net/ethernet/broadcom/bcmsysport.c @@ -2089,7 +2089,7 @@ static int bcm_sysport_stop(struct net_device *dev) =20 ret =3D tdma_enable_set(priv, 0); if (ret) { - netdev_err(dev, "timeout disabling RDMA\n"); + netdev_err(dev, "timeout disabling TDMA\n"); return ret; } =20 @@ -2098,7 +2098,7 @@ static int bcm_sysport_stop(struct net_device *dev) =20 ret =3D rdma_enable_set(priv, 0); if (ret) { - netdev_err(dev, "timeout disabling TDMA\n"); + netdev_err(dev, "timeout disabling RDMA\n"); return ret; } =20 --=20 2.34.1 From nobody Thu Sep 24 18:42:11 2026 Received: from relay.smtp-ext.broadcom.com (lpdvsmtp12.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 61B904483A6; Mon, 21 Sep 2026 23:14:35 +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=1790032477; cv=none; b=Z4UXHuXvROx1NUKEOJdiqO+m/mc7WHcjAvDWAN8dsGtlaJSyNsUKIxIHdbLI4gUgzXe9/SvidFVsiAxZoMJEGmCXIqc8rnqps+ecfNLnHwGAIkhFyBfLd7nuiyEIoXnSVjwxYXrJQKcySab4TUG+vjgs9HRCyzcukGgvD92epLE= ARC-Message-Signature: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1790032477; c=relaxed/simple; bh=ADyxWm85hREfXI/zUlXqlXz0qUfjpUc+UolH/uIxQ+4=; h=From:To:Cc:Subject:Date:Message-Id:In-Reply-To:References: MIME-Version; b=jzCnFK6ANwkuGUG9mekJYtH1LMI/8s3CO0VrWlqvTgKgTS1mcAH+6ViHHcR+uy7m4TM2aOrfZHn3+JeQR6JLcHi2veC6Eg7yBOfie+3SZK7z6Yesuqu2E5Ks09bJl2uEdyhumjq1Rm67Rvl8/WB8vmC1x5aMPHqtYbyb/wC6vMs= 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=CW0GtAQp; 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="CW0GtAQp" 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 1C0BFC0000EC; Mon, 21 Sep 2026 16:14:34 -0700 (PDT) DKIM-Filter: OpenDKIM Filter v2.11.0 relay.smtp-ext.broadcom.com 1C0BFC0000EC DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=broadcom.com; s=dkimrelay; t=1790032474; bh=ADyxWm85hREfXI/zUlXqlXz0qUfjpUc+UolH/uIxQ+4=; h=From:To:Cc:Subject:Date:In-Reply-To:References:From; b=CW0GtAQpDchjq9pY3an9AD0456XcwutFiMwDaLFKoYPqHMU4AHsmM7F72j30bgn2F jbPajRMukBiXhjoee00O1pWu+PId3ud/WFAjH1ETyUEkHZL8SJskp/5YIYYh1oUBQc WdpX8iil4MfOVCIGqyeXzPsuADZnd0GwoxjFEZ2M= 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 D6C39AD9; Mon, 21 Sep 2026 16:14:33 -0700 (PDT) From: Florian Fainelli To: netdev@vger.kernel.org Cc: Florian Fainelli , 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 10/12] net: systemport: Fix unbalanced Wake-on-LAN clock disable in resume Date: Mon, 21 Sep 2026 16:13:03 -0700 Message-Id: <20260921231305.394773-11-florian.fainelli@broadcom.com> X-Mailer: git-send-email 2.34.1 In-Reply-To: <20260921231305.394773-1-florian.fainelli@broadcom.com> References: <20260921231305.394773-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" In bcm_sysport_suspend(), the Wake-on-LAN clock (priv->wol_clk) is only prepared and enabled if both device_may_wakeup(d) and priv->wolopts are true. In bcm_sysport_resume(), however, clk_disable_unprepare(priv->wol_clk) was called whenever priv->wolopts was non-zero, regardless of device_may_wakeup(d). If the system entered suspend with Wake-on-LAN disabled at the device level (e.g., via sysfs wakeup control), this resulted in an unbalanced clk_disable_unprepare() call on resume. Fix this by mirroring the suspend check in bcm_sysport_resume(). Fixes: 6328a126896e ("net: systemport: Manage Wake-on-LAN clock") Assisted-by: LLM Signed-off-by: Florian Fainelli Reviewed-by: Nicolai Buchwitz --- drivers/net/ethernet/broadcom/bcmsysport.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/drivers/net/ethernet/broadcom/bcmsysport.c b/drivers/net/ether= net/broadcom/bcmsysport.c index 384423b312ca..dd5a7c9dd90f 100644 --- a/drivers/net/ethernet/broadcom/bcmsysport.c +++ b/drivers/net/ethernet/broadcom/bcmsysport.c @@ -2803,7 +2803,7 @@ static int __maybe_unused bcm_sysport_resume(struct d= evice *d) return ret; } =20 - if (priv->wolopts) + if (device_may_wakeup(d) && priv->wolopts) clk_disable_unprepare(priv->wol_clk); =20 umac_reset(priv); --=20 2.34.1 From nobody Thu Sep 24 18:42:11 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 3672247A870; Mon, 21 Sep 2026 23:14:40 +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=1790032486; cv=none; b=Hnf6HSwXZbXfG/HXZF8t0W8GA+BraoiDXpNu1YTBZY0nk8ATMY/sCrCEFN1TKDGgmCD7JcAHRt5VB/WJNXfiknatnbdCKydk2VEwQ4UuFRdUBZJzlXX9xab0tc/cVOwh3ULeBr0e9jaJJQArMcqXujIN60Fz/buXGNIErebM4dY= ARC-Message-Signature: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1790032486; c=relaxed/simple; bh=q4Uo6HFLYZhQH5JVbpR9AmQqLAKZ7CUr8XnwIDEo5xM=; h=From:To:Cc:Subject:Date:Message-Id:In-Reply-To:References: MIME-Version; b=B19wxyW4HYtYPT3DD/acWp2UxZ5OHp2dH2Q23z08MkhUMuC0m5nS1kgcEw1KUmZgyYeaVJtdPvAJd9V2FAwYp/G6I9DSxX4bOAQvxRJZeySpSeJbfQBeLK6S2aJJJO5L8FKDRB1UTuknHog3u5lmsrsRbHVavPFy8ICxiM6HGsg= 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=nJ/CihrJ; 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="nJ/CihrJ" 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 2F537C000D89; Mon, 21 Sep 2026 16:14:34 -0700 (PDT) DKIM-Filter: OpenDKIM Filter v2.11.0 relay.smtp-ext.broadcom.com 2F537C000D89 DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=broadcom.com; s=dkimrelay; t=1790032474; bh=q4Uo6HFLYZhQH5JVbpR9AmQqLAKZ7CUr8XnwIDEo5xM=; h=From:To:Cc:Subject:Date:In-Reply-To:References:From; b=nJ/CihrJ44l/OKEKJ7kNYiqveC2X9I3xtnpAjYEHJqLFQzUGyf5mAryPfzcUJSwj/ Ycb6EqRRKpfPQf3jMGwQmuP6wJVpgT3b2MCmqTUfye1GI5ECrNTRRS9hqRsG22axz+ BlGrQmSKK9ZK2aaZJ+mVbLmsk17/FkgySZ+0xO1A= 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 0CF2CAE4; Mon, 21 Sep 2026 16:14:34 -0700 (PDT) From: Florian Fainelli To: netdev@vger.kernel.org Cc: Florian Fainelli , 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 11/12] net: systemport: Update TDMA queue mapping dynamically on changeupper Date: Mon, 21 Sep 2026 16:13:04 -0700 Message-Id: <20260921231305.394773-12-florian.fainelli@broadcom.com> X-Mailer: git-send-email 2.34.1 In-Reply-To: <20260921231305.394773-1-florian.fainelli@broadcom.com> References: <20260921231305.394773-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 DSA upper devices are dynamically attached or detached while the master SYSTEMPORT interface is already up and running (netif_running()), bcm_sysport_map_queues() and bcm_sysport_unmap_queues() updated the internal software mappings but did not update the TDMA_DESC_RING_MAPPING hardware registers, because programming was previously deferred until bcm_sysport_init_tx_ring(). Update TDMA_DESC_RING_MAPPING registers immediately if netif_running() is true during map_queues and unmap_queues. Fixes: 1593cd40d785 ("net: systemport: use standard netdevice notifier to d= etect DSA presence") Assisted-by: LLM Signed-off-by: Florian Fainelli --- drivers/net/ethernet/broadcom/bcmsysport.c | 23 +++++++++++++++++++--- 1 file changed, 20 insertions(+), 3 deletions(-) diff --git a/drivers/net/ethernet/broadcom/bcmsysport.c b/drivers/net/ether= net/broadcom/bcmsysport.c index dd5a7c9dd90f..e5bb7fa84fda 100644 --- a/drivers/net/ethernet/broadcom/bcmsysport.c +++ b/drivers/net/ethernet/broadcom/bcmsysport.c @@ -2315,6 +2315,7 @@ static int bcm_sysport_map_queues(struct net_device *= dev, struct bcm_sysport_tx_ring *ring; unsigned int num_tx_queues; unsigned int q, qp, port; + u32 reg; =20 /* We can't be setting up queue inspection for non directly attached * switches @@ -2350,14 +2351,21 @@ static int bcm_sysport_map_queues(struct net_device= *dev, if (ring->inspect) continue; =20 - /* Just remember the mapping actual programming done - * during bcm_sysport_init_tx_ring - */ ring->switch_queue =3D qp; ring->switch_port =3D port; ring->inspect =3D true; if (qp + port * num_tx_queues < ARRAY_SIZE(priv->ring_map)) priv->ring_map[qp + port * num_tx_queues] =3D ring; + + if (netif_running(dev)) { + reg =3D tdma_readl(priv, TDMA_DESC_RING_MAPPING(q)); + reg &=3D ~(RING_QID_MASK | + RING_PORT_ID_MASK << RING_PORT_ID_SHIFT | + RING_IGNORE_STATUS); + reg |=3D (qp & RING_QID_MASK); + reg |=3D (port << RING_PORT_ID_SHIFT); + tdma_writel(priv, reg, TDMA_DESC_RING_MAPPING(q)); + } qp++; } =20 @@ -2372,6 +2380,7 @@ static int bcm_sysport_unmap_queues(struct net_device= *dev, struct bcm_sysport_tx_ring *ring; unsigned int num_tx_queues; unsigned int q, qp, port; + u32 reg; =20 port =3D dp->index; =20 @@ -2390,6 +2399,14 @@ static int bcm_sysport_unmap_queues(struct net_devic= e *dev, qp =3D ring->switch_queue; if (qp + port * num_tx_queues < ARRAY_SIZE(priv->ring_map)) priv->ring_map[qp + port * num_tx_queues] =3D NULL; + + if (netif_running(dev)) { + reg =3D tdma_readl(priv, TDMA_DESC_RING_MAPPING(q)); + reg &=3D ~(RING_QID_MASK | + RING_PORT_ID_MASK << RING_PORT_ID_SHIFT); + reg |=3D RING_IGNORE_STATUS; + tdma_writel(priv, reg, TDMA_DESC_RING_MAPPING(q)); + } } =20 return 0; --=20 2.34.1 From nobody Thu Sep 24 18:42:11 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 3800E47D959; Mon, 21 Sep 2026 23:14:43 +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=1790032486; cv=none; b=CwwbNFN+CQx+1IYPQn90vRF1p592oUL2PvFKZFzrs551VK7kIx7yZklFEbKvut1JIl0D58l7/YXW5p7V0dVdn1Hy2cHB2H56JoUwjFPEVqBh/zX0oTHOe4as0A8Fq967Gx+OthuIo3iwaZzz8eO6NKFjzRHyVB1RHjYtRA274jY= ARC-Message-Signature: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1790032486; c=relaxed/simple; bh=0pDu9zxMPYxcA+WTdxFtaLVQXA7kWFSBaSm0n0kMQ+8=; h=From:To:Cc:Subject:Date:Message-Id:In-Reply-To:References: MIME-Version; b=c562LGn+uTJnop69IsC9E63ZNCp0rEjyZggMPCJSsPGUxF+TYxFkewB1wQ+n5HCKQwtc7J4vwsi+pmIr5ozOOKYFPy7wJe6MkDMwnU9FrATWlNRtf20todrkCq9kUtH5tRyUnsrW7Gq5wjJpV6ArfUQ4DAS9TG8dYcGZ5MHaaww= 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=vpEWkRka; 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="vpEWkRka" 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 58A99C000D8A; Mon, 21 Sep 2026 16:14:34 -0700 (PDT) DKIM-Filter: OpenDKIM Filter v2.11.0 relay.smtp-ext.broadcom.com 58A99C000D8A DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=broadcom.com; s=dkimrelay; t=1790032474; bh=0pDu9zxMPYxcA+WTdxFtaLVQXA7kWFSBaSm0n0kMQ+8=; h=From:To:Cc:Subject:Date:In-Reply-To:References:From; b=vpEWkRkaVZl9ReAJGySTZqiUHx4yvhdOguOonuM0C7CCkndPdW8SRytHI/tna9Zpv aS2SnGQGc4I82/VHCVs86+x/byx2Tr1fVgL1kdzTLXKK9gkMH4ah9RL8ptoLbgZViv npHhDhVOOZhsFVqK3ZOTd7IZD30kvu9D0hmAVGNc= 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 35AC4AE0; Mon, 21 Sep 2026 16:14:34 -0700 (PDT) From: Florian Fainelli To: netdev@vger.kernel.org Cc: Florian Fainelli , 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 12/12] net: systemport: Complete resource teardown even on DMA disable timeout Date: Mon, 21 Sep 2026 16:13:05 -0700 Message-Id: <20260921231305.394773-13-florian.fainelli@broadcom.com> X-Mailer: git-send-email 2.34.1 In-Reply-To: <20260921231305.394773-1-florian.fainelli@broadcom.com> References: <20260921231305.394773-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" In bcm_sysport_stop(), if tdma_enable_set() or rdma_enable_set() timed out, the function returned early with an error code. However, ndo_stop() callers in the networking core ignore error returns, leaving the software ring structures allocated, interrupts registered, PHY connected, and clock enabled. If the interface was subsequently brought up again, request_irq() and PHY connection would fail or leak. Ensure all software ring teardown, interrupt freeing, PHY disconnection, and clock disabling steps are executed regardless of DMA disable timeouts. Fixes: 80105befdb4b ("net: systemport: add Broadcom SYSTEMPORT Ethernet MAC= driver") Assisted-by: LLM Signed-off-by: Florian Fainelli --- drivers/net/ethernet/broadcom/bcmsysport.c | 8 ++------ 1 file changed, 2 insertions(+), 6 deletions(-) diff --git a/drivers/net/ethernet/broadcom/bcmsysport.c b/drivers/net/ether= net/broadcom/bcmsysport.c index e5bb7fa84fda..2b064da4eb7c 100644 --- a/drivers/net/ethernet/broadcom/bcmsysport.c +++ b/drivers/net/ethernet/broadcom/bcmsysport.c @@ -2088,19 +2088,15 @@ static int bcm_sysport_stop(struct net_device *dev) umac_enable_set(priv, CMD_RX_EN, 0); =20 ret =3D tdma_enable_set(priv, 0); - if (ret) { + if (ret) netdev_err(dev, "timeout disabling TDMA\n"); - return ret; - } =20 /* Wait for a maximum packet size to be drained */ usleep_range(2000, 3000); =20 ret =3D rdma_enable_set(priv, 0); - if (ret) { + if (ret) netdev_err(dev, "timeout disabling RDMA\n"); - return ret; - } =20 /* Disable UniMAC TX */ umac_enable_set(priv, CMD_TX_EN, 0); --=20 2.34.1