From nobody Thu Sep 24 14:25:58 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 40C01192D8A; Tue, 22 Sep 2026 23:24:47 +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=1790119488; cv=none; b=ZUdXHdVk3BgjNWOclwCH7eLA521i3KvEol/uPWWXGRAUOY37Pb7bUcoqdjmsHm36WXVadL4bw3DekEftJq3kr1H+4Je3k3IzuWivI71r0Ul+tvcEFXHKTY0ZY922NlEKcMwgipmNDBtkqtWyXn0lJVzkRH8sSX5jO5V/sllxD6s= ARC-Message-Signature: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1790119488; c=relaxed/simple; bh=CvkF/XupqjjT39SL1TjRXtprvxjQ1cTXY42nv0EJLac=; h=From:To:Cc:Subject:Date:Message-Id:In-Reply-To:References: MIME-Version; b=qQ58Ck5jdDfuBNCusSsdaE7jnsK6EQMP+jnO6YDtaOatVVkEAb/0cD4OF8qiDjFfdKi8HQTvJOrgm1v3jji3iEWUAEpND5TESGKoZtz54w8StDl6nI6eSdLunJQ9zzMBv7JJNZyKO3358gsU9v0kfiuZW/k9Q9uJEL47L+TO124= 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=QFO7Nj+S; 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="QFO7Nj+S" 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 A05C1C0000E4; Tue, 22 Sep 2026 16:24:45 -0700 (PDT) DKIM-Filter: OpenDKIM Filter v2.11.0 relay.smtp-ext.broadcom.com A05C1C0000E4 DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=broadcom.com; s=dkimrelay; t=1790119485; bh=CvkF/XupqjjT39SL1TjRXtprvxjQ1cTXY42nv0EJLac=; h=From:To:Cc:Subject:Date:In-Reply-To:References:From; b=QFO7Nj+SPBqs41NDuHm1MQ+oZK2+tmqI7k16oTLKW9MEIivdWq19CRFnmx+1mhooX EHuSGLrBO2kpSxV5D0mSfBjNPLTzKVrhhwtCzRBx67vSxBTjn5RgCXn0Joo3d7+Kxu POGXzoFd47cRFH/JFCdzug+UzMa17lCe1IevQ7O8= 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 4A79FB04; Tue, 22 Sep 2026 16:24:45 -0700 (PDT) From: Florian Fainelli To: netdev@vger.kernel.org Cc: Florian Fainelli , Nicolai Buchwitz , 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) Subject: [PATCH net v2 01/10] net: systemport: Fix buffer overflow in bcm_sysport_get_stats() Date: Tue, 22 Sep 2026 16:24:31 -0700 Message-Id: <20260922232440.598918-2-florian.fainelli@broadcom.com> X-Mailer: git-send-email 2.34.1 In-Reply-To: <20260922232440.598918-1-florian.fainelli@broadcom.com> References: <20260922232440.598918-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 Reviewed-by: Nicolai Buchwitz Signed-off-by: Florian Fainelli --- 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 14:25:58 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 BEDCB531B03; Tue, 22 Sep 2026 23:24:53 +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=1790119496; cv=none; b=OPPpYea+bqmsC49m4ERrL5d5qN1mfGUJ/yXOU1XAeCVjBOsZVYOXp+7X5+d1GuT8Jxf1puDr2zi2VtgimhEEKuHRPvFH2gDWdbd9ERpJZmcXsO9PJSfTvG805c8w6vF573NJdwKoueODbwGYvFsj5o1JyRS6ZpX9uMfILsODwO0= ARC-Message-Signature: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1790119496; c=relaxed/simple; bh=g7xNGG6f6KDhEMF0no2WkSnny9t+AeRAFzePXWpQZ4s=; h=From:To:Cc:Subject:Date:Message-Id:In-Reply-To:References: MIME-Version; b=fXkYCozl/Uc/8l2Ise0hi++py9+DcFfBd0ahlhdd1fvM8+BZyCaqzlaSKo9byRfuhqY3k72UHm/3YiV+vnk+WUrknIsvD0JXMuvpZrE9Dl+nfkOHkzwzajiU0R8BMBm0p+cUBiv9O9BiqfTEOxMiUm3ecdgH7Acxn2wY3CPGmLQ= 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=GTCWYsnM; 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="GTCWYsnM" 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 D335FC0000FA; Tue, 22 Sep 2026 16:24:45 -0700 (PDT) DKIM-Filter: OpenDKIM Filter v2.11.0 relay.smtp-ext.broadcom.com D335FC0000FA DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=broadcom.com; s=dkimrelay; t=1790119485; bh=g7xNGG6f6KDhEMF0no2WkSnny9t+AeRAFzePXWpQZ4s=; h=From:To:Cc:Subject:Date:In-Reply-To:References:From; b=GTCWYsnMbOf5U8F7+WDaMlhx9xZ8qqTz2oslhb5Yx1u/p9iMCZMZlXSxfClobjq/y ux6NpkcATX/pSfafcUrXWETaN08K7Gt33pVw2SsN89CpIQlcDlzq53fXdQkmQSNv70 DnXPp++P+JuU7JT6sD4QuFPWt3Sraf9Mxvyxqdiw= 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 741C9ACC; Tue, 22 Sep 2026 16:24:45 -0700 (PDT) From: Florian Fainelli To: netdev@vger.kernel.org Cc: Florian Fainelli , Nicolai Buchwitz , 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) Subject: [PATCH net v2 02/10] net: systemport: Fix invalid dev_id argument in bcm_sysport_poll_controller() Date: Tue, 22 Sep 2026 16:24:32 -0700 Message-Id: <20260922232440.598918-3-florian.fainelli@broadcom.com> X-Mailer: git-send-email 2.34.1 In-Reply-To: <20260922232440.598918-1-florian.fainelli@broadcom.com> References: <20260922232440.598918-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 Reviewed-by: Nicolai Buchwitz Signed-off-by: Florian Fainelli --- 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 14:25:58 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 0D91F4BF941; Tue, 22 Sep 2026 23:24:52 +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=1790119494; cv=none; b=E/Y55CFZW3j8KuswRUIEJMhEQZRwAeJayciUqMTuVs1/59SJHVf3mKJb0996/DPnZ3+IyvWIDIG5R1q3dzjl5oULxyRMtRXKAz0tVo+QEjkYkRHpO6D69ac5SohrZfBqoDbimxaFxl2DQYRMc3TdeuAdXE0BqT2rZsIBf52u2MM= ARC-Message-Signature: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1790119494; c=relaxed/simple; bh=Q9Uvwal5oeAw4P/DGhgTKnbhdEJzOdSgbIx8POc2X7k=; h=From:To:Cc:Subject:Date:Message-Id:In-Reply-To:References: MIME-Version; b=fLJh0VxkF9quf59SklwHyeKea8hLANOgmw+pDjYUKSiqn28E8Q1ZZFA9idYJLDUGFaX2C0c7p7z1z3yz0/0emQAKHogu9H8GfUhk+mtoRK+ve29E/57MX27ozMVE9tCn14iSXPTYBexK5Ww5d3Np0DXNq+4evEPWPvkV9q48Yxc= 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=cf7jBIBG; 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="cf7jBIBG" 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 C8091C0000DE; Tue, 22 Sep 2026 16:24:45 -0700 (PDT) DKIM-Filter: OpenDKIM Filter v2.11.0 relay.smtp-ext.broadcom.com C8091C0000DE DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=broadcom.com; s=dkimrelay; t=1790119485; bh=Q9Uvwal5oeAw4P/DGhgTKnbhdEJzOdSgbIx8POc2X7k=; h=From:To:Cc:Subject:Date:In-Reply-To:References:From; b=cf7jBIBG611cCA5T79D6nMZRZd5W+k6nz9AjqUgn9E+w2Fs+nNi/K/GmJdVq/aBmw 9sVX9u3q028NAqCt+pHs4Fy9swXqAu8nFIKRWFbGEC0v9xnVPMxunU8+41YZSHSkt7 FELw8X41f2ba1GkCrjGJoyWuh4crU+PbcLSU94oA= 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 A1978B06; Tue, 22 Sep 2026 16:24:45 -0700 (PDT) From: Florian Fainelli To: netdev@vger.kernel.org Cc: Florian Fainelli , Nicolai Buchwitz , 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) Subject: [PATCH net v2 03/10] net: systemport: Fix NULL pointer dereference in bcm_sysport_fini_rx_ring() Date: Tue, 22 Sep 2026 16:24:33 -0700 Message-Id: <20260922232440.598918-4-florian.fainelli@broadcom.com> X-Mailer: git-send-email 2.34.1 In-Reply-To: <20260922232440.598918-1-florian.fainelli@broadcom.com> References: <20260922232440.598918-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 Reviewed-by: Nicolai Buchwitz Signed-off-by: Florian Fainelli --- 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 14:25:58 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 0DA465208B8; Tue, 22 Sep 2026 23:24:52 +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=1790119496; cv=none; b=aR0GlxxbEE8QOMKBdj8vjq3784XR5NnfUTrciRloBMqqN90yCi6azHmOw1s+BRpxt79TtncXwff6GaEBv/u0xngJHZB5WJ/om1MvmLIbWkaGJ31vjygrzs9qzF3lPCDxwOthajh+6GBwY2pfUd/P4Si32oxdtanRovT1McXG1jc= ARC-Message-Signature: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1790119496; c=relaxed/simple; bh=I9DnMq4KXhMFBvyFhpkMPTrKDNbKAXhlEmUo595ax54=; h=From:To:Cc:Subject:Date:Message-Id:In-Reply-To:References: MIME-Version; b=QSlJ2bjubHJCOgWiLFfn4p4V3f0QuAzw++9NZQjlAH0Bp3hRWE/AtgtAkGHwZoqKavR6g9oncr02coOfQU6MrglBczKLS1MGHjci0mPKa584oogDQNIAANgdkFjLRxIFDSX2kisGG33byCxX3bZOJpFa/JbxyasofbyPZ3WhKQQ= 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=bj4E8hae; 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="bj4E8hae" 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 F2D1CC0000E6; Tue, 22 Sep 2026 16:24:45 -0700 (PDT) DKIM-Filter: OpenDKIM Filter v2.11.0 relay.smtp-ext.broadcom.com F2D1CC0000E6 DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=broadcom.com; s=dkimrelay; t=1790119486; bh=I9DnMq4KXhMFBvyFhpkMPTrKDNbKAXhlEmUo595ax54=; h=From:To:Cc:Subject:Date:In-Reply-To:References:From; b=bj4E8haeAA/VOiy6uAJbeqqbNWKKbZevs0ZOAyuIUDwgkqk3sYEmvWC1j3aGfbbhn n5qdbyN5m0KSN3xZ0Qst3pbJAZfFKxW/+sP90Go+CpdnGEh2LY/VFYezCXStm674l5 90Dqj+H417xLWoBu5gSIpuAp44RCFXQ7K8cO2hu4= 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 CCEBFB04; Tue, 22 Sep 2026 16:24:45 -0700 (PDT) From: Florian Fainelli To: netdev@vger.kernel.org Cc: Florian Fainelli , Nicolai Buchwitz , 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) Subject: [PATCH net v2 04/10] net: systemport: Fix Wake-on-LAN RXCHK filter enable loop Date: Tue, 22 Sep 2026 16:24:34 -0700 Message-Id: <20260922232440.598918-5-florian.fainelli@broadcom.com> X-Mailer: git-send-email 2.34.1 In-Reply-To: <20260922232440.598918-1-florian.fainelli@broadcom.com> References: <20260922232440.598918-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 Reviewed-by: Nicolai Buchwitz Signed-off-by: Florian Fainelli --- 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 b91a57540f55..ec43aab11790 100644 --- a/drivers/net/ethernet/broadcom/bcmsysport.c +++ b/drivers/net/ethernet/broadcom/bcmsysport.c @@ -2648,7 +2648,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); @@ -2678,10 +2678,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 14:25:58 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 53DE64C10D7; Tue, 22 Sep 2026 23:24:53 +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=1790119496; cv=none; b=KSLTd8/THl6E6NRfK70csGKUdvCx8mthg/lf5iWsNbBRJ2S0o08cyjKyOsGsvQME7DOF0VDcd6xEVf+BetLK+Tl4SaowKYUCy1CM5+oul7/ixGFzzhNMZgyX/kiOKSqRx4ZjLSWI4UqnJjooc6KKK4pMibdlr/N7b8TC7el9FGs= ARC-Message-Signature: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1790119496; c=relaxed/simple; bh=bdVON6Ht62DqPaZ0tSzxTpeYzxAptaD4X2SL8HloeXI=; h=From:To:Cc:Subject:Date:Message-Id:In-Reply-To:References: MIME-Version; b=YtcyqUHixqQ4fgeM+Czy9SlkpURXXkqO9TvQ3DpavTdW7SiZIWiBsevZw8W6T+H37M0/+jKb/Os1lXjgZvFyRbK8dxdD+5csiurtwsCiwoUfb7qEGlAARFLr+q1+Rl30yQ/qZ/0u/k1XrKR25HO2fFISetV93X9OvVQpz4W3CGI= 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=bW+BuVX8; 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="bW+BuVX8" 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 29FC5C0000E9; Tue, 22 Sep 2026 16:24:46 -0700 (PDT) DKIM-Filter: OpenDKIM Filter v2.11.0 relay.smtp-ext.broadcom.com 29FC5C0000E9 DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=broadcom.com; s=dkimrelay; t=1790119486; bh=bdVON6Ht62DqPaZ0tSzxTpeYzxAptaD4X2SL8HloeXI=; h=From:To:Cc:Subject:Date:In-Reply-To:References:From; b=bW+BuVX8uo4/KI+VGfFpUwObsQCoyh7+RbNEevp98Ub0e8wIOafCdUzheYBdUO94g Jt7MRV/aCe9YllhnOgvKNk2W5itdKM0yQFuKxI7/MRcUAxgIjqbU/w13fiwoToJ3mg X38dIhqG/6ie5pC+CWVrAT0p4FnxrFcfPqmIyft0= 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 04740ACC; Tue, 22 Sep 2026 16:24:46 -0700 (PDT) From: Florian Fainelli To: netdev@vger.kernel.org Cc: Florian Fainelli , Nicolai Buchwitz , 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) Subject: [PATCH net v2 05/10] net: systemport: Fix RUNT MIB counter register offset calculation Date: Tue, 22 Sep 2026 16:24:35 -0700 Message-Id: <20260922232440.598918-6-florian.fainelli@broadcom.com> X-Mailer: git-send-email 2.34.1 In-Reply-To: <20260922232440.598918-1-florian.fainelli@broadcom.com> References: <20260922232440.598918-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 Reviewed-by: Nicolai Buchwitz Signed-off-by: Florian Fainelli --- 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 ec43aab11790..9c1b515dc8cc 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 14:25:58 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 EF7EA4C10D7; Tue, 22 Sep 2026 23:24:47 +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=1790119489; cv=none; b=O+bsIGc9Wq6oa5CaX29B5Nc9rgJRxT8fiV2vOSj+ubKOjylKJM3J/Okk9XHmVyIhaspXLK9s28tGH00iAFxlljioz4rphFVSnwly1R5TwZ7dcsQhWbi0slXWAIui3f7WViKMMkKDhgUYmL/R8a6kf/7G9SmZOmatVvEiBJTi+DM= ARC-Message-Signature: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1790119489; c=relaxed/simple; bh=iY9+VNl3y29IswXVO22Ct3cxUlyr0D3n2euG9sww0RI=; h=From:To:Cc:Subject:Date:Message-Id:In-Reply-To:References: MIME-Version; b=SDH25Uv2gayIfb96SQZ+dDoBjUWBfPiB9yub/p3U4FSh+tqUX+pdECAF82Wt1ziWIPXKhJreFGfpUeJjSQ2YQxYcgG7869ExPH2nFQmWoOvGjhvfPTK/h1d8pMkTkm023YUNXazrLoy5prAU9aaS9km/SuCN2W4H7oFz4DTktug= 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=U0+Sc3r5; 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="U0+Sc3r5" 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 87FE8C0000ED; Tue, 22 Sep 2026 16:24:46 -0700 (PDT) DKIM-Filter: OpenDKIM Filter v2.11.0 relay.smtp-ext.broadcom.com 87FE8C0000ED DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=broadcom.com; s=dkimrelay; t=1790119486; bh=iY9+VNl3y29IswXVO22Ct3cxUlyr0D3n2euG9sww0RI=; h=From:To:Cc:Subject:Date:In-Reply-To:References:From; b=U0+Sc3r5YJHT8Go8UUpEgYDbiZXbWx29/psmX3UXDmA6WQvDTtxR4VfQgK+eEdS2/ 8QebiWxr/2nKbTf8y0lZkZ6ejYnW/Bt+ObZrPiZsaOJomV+pKk43AneIeI4VrRfXRo 9C+ZQqjvzZ6GXEitXriXNlPkyxb8uIHMCzRXGUu4= 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 3141BB04; Tue, 22 Sep 2026 16:24:46 -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 v2 06/10] net: systemport: Fix potential packet length underflow in bcm_sysport_desc_rx() Date: Tue, 22 Sep 2026 16:24:36 -0700 Message-Id: <20260922232440.598918-7-florian.fainelli@broadcom.com> X-Mailer: git-send-email 2.34.1 In-Reply-To: <20260922232440.598918-1-florian.fainelli@broadcom.com> References: <20260922232440.598918-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). 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 9c1b515dc8cc..ed4337af58da 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 14:25:58 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 62B1249EC64; Tue, 22 Sep 2026 23:24:54 +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=1790119498; cv=none; b=tU5OwgONXbR5r2/jn0gUbtOo8+mxu0GaHTSy0T6keXw/dit45O7Pzb1xut9g9YhAUh+0no7vlq48JNmU1t3CXmtUZ2Ahcdfah5rtH0GIvoI3TnEjLRv0hNgJFpmo4DL+tZPAU1ksjGqs5olV8RUNc/6WA4l2+fefw8NRmWPkMBA= ARC-Message-Signature: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1790119498; c=relaxed/simple; bh=UXlcG+J6U4N8HN8tG9oXX0awGaMqUPlcMAq+wcucFZs=; h=From:To:Cc:Subject:Date:Message-Id:In-Reply-To:References: MIME-Version; b=PTKLRGKSRI/R5p1uLxCsuNjEt+rXL0OGrq7BMXX9ruHksLTDOQ0nx9std8awxfWokRqjrYau+iRJc43tbzl1z/xeYJeWHNqDc5XVWAiG5uupGgnuH0XR6+tb4yQ3WPjd/TjgSRHktHc3DzsVH5Cc9CSzYPW1sWIkZDTRj/OM+xw= 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=GwxzyJde; 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="GwxzyJde" 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 B2235C0003C7; Tue, 22 Sep 2026 16:24:46 -0700 (PDT) DKIM-Filter: OpenDKIM Filter v2.11.0 relay.smtp-ext.broadcom.com B2235C0003C7 DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=broadcom.com; s=dkimrelay; t=1790119486; bh=UXlcG+J6U4N8HN8tG9oXX0awGaMqUPlcMAq+wcucFZs=; h=From:To:Cc:Subject:Date:In-Reply-To:References:From; b=GwxzyJde1HpLprVrsU6wYNjpdF2PXPi7aCc6Aj7+oNqgIl4rKGNVPjDLeZzmxcNtc +TwcrpFEaUQ6RVTW5ouyauwKkOTE1Rvqw8yie+C/8ZQpKaae4voCktd0h3HwJvd626 LfMuxMY7Cxg/X4hv8TIO6DypR1F+1L7mT8hJJcl0= 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 5B7F3B06; Tue, 22 Sep 2026 16:24:46 -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 v2 07/10] net: systemport: Fix out-of-bounds array accesses in DSA queue mapping Date: Tue, 22 Sep 2026 16:24:37 -0700 Message-Id: <20260922232440.598918-8-florian.fainelli@broadcom.com> X-Mailer: git-send-email 2.34.1 In-Reply-To: <20260922232440.598918-1-florian.fainelli@broadcom.com> References: <20260922232440.598918-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 ed4337af58da..4efcefd33b78 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 14:25:58 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 2AEDE530DE5; Tue, 22 Sep 2026 23:24:53 +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=1790119496; cv=none; b=RQo8jeutcLIFAlia5lhWCFm4bKLs/O4sFA2DaAbyvgaT7BEzeSpThAi2i6F5IgUNqEEO32kcdXp93VSiUJLNslgTipdv2SuH5ezsTPocqwvp5Kr4mmUcFCIBozss7jkPWoM/9wyR4TbV3QnRVh7LZnZHpSZNhXSSIpcKgIAdfbM= ARC-Message-Signature: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1790119496; c=relaxed/simple; bh=bm/1Aco6j6KmpyDyBLhfXutg8/2FgYUIjwXbzNyGLTo=; h=From:To:Cc:Subject:Date:Message-Id:In-Reply-To:References: MIME-Version; b=hN2rLHdsbpRcC//9j3F915vPMh6tyV+PNq5Qf8oX4ZQYjtI7z2f5xSn9Q4WEa3DZqJN8NFHqVvvOQI8o5EWXmcbgMtWXzKXLZlAYWvPJMshiI80OZkN4Fe14y8wuWn17azYC06o5sRgkKRdx+IpW0NY5qYEODdgZa7sNyMjv1rE= 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=YO68lDUb; 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="YO68lDUb" 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 DE009C0003C8; Tue, 22 Sep 2026 16:24:46 -0700 (PDT) DKIM-Filter: OpenDKIM Filter v2.11.0 relay.smtp-ext.broadcom.com DE009C0003C8 DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=broadcom.com; s=dkimrelay; t=1790119486; bh=bm/1Aco6j6KmpyDyBLhfXutg8/2FgYUIjwXbzNyGLTo=; h=From:To:Cc:Subject:Date:In-Reply-To:References:From; b=YO68lDUbZulhdG0x0oCzUkDsYRoRbQW1yfjN9uR2a/1PhpICR/92/i1a9BLcROOhb l/jElm2UY+4wEzYeyZJ8Dvwjjvp+4IBxt96HTbzSPCCjfteJymc0PFpk8WXXzTSRFB f5a/vhODsuwRqRdqipd0KfpP/TFOhUrcO9NegoQ0= 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 86824ACC; Tue, 22 Sep 2026 16:24:46 -0700 (PDT) From: Florian Fainelli To: netdev@vger.kernel.org Cc: Florian Fainelli , Nicolai Buchwitz , 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) Subject: [PATCH net v2 08/10] net: systemport: Fix inverted error messages in bcm_sysport_stop() Date: Tue, 22 Sep 2026 16:24:38 -0700 Message-Id: <20260922232440.598918-9-florian.fainelli@broadcom.com> X-Mailer: git-send-email 2.34.1 In-Reply-To: <20260922232440.598918-1-florian.fainelli@broadcom.com> References: <20260922232440.598918-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 Reviewed-by: Nicolai Buchwitz Signed-off-by: Florian Fainelli --- 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 4efcefd33b78..11b2cb4cc792 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 14:25:58 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 80E264DD3BB; Tue, 22 Sep 2026 23:24:53 +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=1790119498; cv=none; b=ranRK7UEYLhb45hb2TrwMEVpl1Ji1k0zutrTVlqcQSXOQQlA6COOaBW3YNbhycJjXSs37yxn7jYT6Keu66jc/OYZSFdC8cHJpZ3InGlhAEVe2sLQxWO7Z/mDgm8W0KcsB2Y/Vh75mGfz/K5by/8WR6UlXbrcwjWkUeUXSsmhWGk= ARC-Message-Signature: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1790119498; c=relaxed/simple; bh=3ESlFTVnQw+iGUBUwrnIaZYqwZwtzk2k5d6ED93Qe/k=; h=From:To:Cc:Subject:Date:Message-Id:In-Reply-To:References: MIME-Version; b=JO3KAeZBoUp706oo3ZNxpr7B3yifWejS65wHQnXV2NJEPG/kko5pqfYIzYVZkdQaUIonITF0E7KU7DpTt5iymeYpGP+/AK+fQkpS/tStlJxo6W6vo+SwCDNcuWVZn4RKewRm+CFpNUBkrcyKRaPfYz6k9h12xnqO+SVsIi5LK98= 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=v5JGT1LE; 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="v5JGT1LE" 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 D979AC0000E3; Tue, 22 Sep 2026 16:24:46 -0700 (PDT) DKIM-Filter: OpenDKIM Filter v2.11.0 relay.smtp-ext.broadcom.com D979AC0000E3 DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=broadcom.com; s=dkimrelay; t=1790119486; bh=3ESlFTVnQw+iGUBUwrnIaZYqwZwtzk2k5d6ED93Qe/k=; h=From:To:Cc:Subject:Date:In-Reply-To:References:From; b=v5JGT1LE0Gv4CkFMucBUvuoc3xoleYSO1r8fKZyM5ROprS30Haqbm4E2q1Qz0Qfo6 Nkvy6Hy6XWADvC0ZHfacE6ADxR43dSbkkeJN9f6b/P4BDizhCSk2Kv8mzGKVr3Saq/ lCvorKbMA8b5UZHYpTMefMu/Zr6hW3Af9Amu/BK0= 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 B144CB04; Tue, 22 Sep 2026 16:24:46 -0700 (PDT) From: Florian Fainelli To: netdev@vger.kernel.org Cc: Florian Fainelli , Nicolai Buchwitz , 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) Subject: [PATCH net v2 09/10] net: systemport: Fix unbalanced Wake-on-LAN clock disable in resume Date: Tue, 22 Sep 2026 16:24:39 -0700 Message-Id: <20260922232440.598918-10-florian.fainelli@broadcom.com> X-Mailer: git-send-email 2.34.1 In-Reply-To: <20260922232440.598918-1-florian.fainelli@broadcom.com> References: <20260922232440.598918-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 Reviewed-by: Nicolai Buchwitz Signed-off-by: Florian Fainelli --- 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 11b2cb4cc792..dedd49ad6c4e 100644 --- a/drivers/net/ethernet/broadcom/bcmsysport.c +++ b/drivers/net/ethernet/broadcom/bcmsysport.c @@ -2799,7 +2799,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 14:25:58 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 2ADA84DD3A7; Tue, 22 Sep 2026 23:24:53 +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=1790119496; cv=none; b=DMkGHANUfBF0MIWogrGiwZ+KUmUmRAF2cy7jefsPZOHDaAB+4BTwC5ASJE5DQMgRBmzBbR4YGZ6JrYh+EbAX+CESmHddXfG9Ujm9qASi2AL4agJpmXpInw1pRVjV0PjhHuqs9/SNfik3j0y2Zb5/z9pNuP7BH88pk/sGb+7r/Vk= ARC-Message-Signature: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1790119496; c=relaxed/simple; bh=PxXs5ByY0xAMpGbGAZcXoQitZ5OzNulQmfjO483+Uh4=; h=From:To:Cc:Subject:Date:Message-Id:In-Reply-To:References: MIME-Version; b=G0V9F81gPvtF380bMDtzlIfrVK3xWc9K/06rvS1stTbSHXPoeR+8yQ0kY8xuJH7Dnga+78qieDojcP6zE4Db+rKLBs0NuOebWRwnTdxYLTDv4LT3yIcYQ3+mE7y3kUVc3jSFcQmpFr61CiuOgzFAUCzKVbt2yoFVSLSGe+hQZkM= 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=rjsa3O6J; 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="rjsa3O6J" 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 0B1BCC0000E4; Tue, 22 Sep 2026 16:24:47 -0700 (PDT) DKIM-Filter: OpenDKIM Filter v2.11.0 relay.smtp-ext.broadcom.com 0B1BCC0000E4 DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=broadcom.com; s=dkimrelay; t=1790119487; bh=PxXs5ByY0xAMpGbGAZcXoQitZ5OzNulQmfjO483+Uh4=; h=From:To:Cc:Subject:Date:In-Reply-To:References:From; b=rjsa3O6JOHtwwLVXZ9VEqiXltjieaLlpLYg6lGhhCLyeP1zRP6lsuFIKfp6F75ZUq CfuEPO0M2NIQsXG/Bl1Jw+tan59JHqVCQykA02q+nkgNviQABjV2yp3qpopZE6qz+J NJffKK2FatuGNY59PlAdCql5a0OLDV1K/SXJT6cs= 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 DC0FEB06; Tue, 22 Sep 2026 16:24:46 -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 v2 10/10] net: systemport: Update TDMA queue mapping dynamically on changeupper Date: Tue, 22 Sep 2026 16:24:40 -0700 Message-Id: <20260922232440.598918-11-florian.fainelli@broadcom.com> X-Mailer: git-send-email 2.34.1 In-Reply-To: <20260922232440.598918-1-florian.fainelli@broadcom.com> References: <20260922232440.598918-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 dedd49ad6c4e..ca1b86953dba 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