From nobody Mon Jun 8 14:37:43 2026 Received: from AS8PR04CU009.outbound.protection.outlook.com (mail-westeuropeazon11011063.outbound.protection.outlook.com [52.101.70.63]) (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 3A252407583; Thu, 28 May 2026 17:35:08 +0000 (UTC) Authentication-Results: smtp.subspace.kernel.org; arc=fail smtp.client-ip=52.101.70.63 ARC-Seal: i=2; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1779989709; cv=fail; b=iJpVvUpB9zKJqQwlW/nL+2QzdhGExSwhF7Ys2lZmLRxopxNbWievs9h6DxjL+uWnbrsMmIbBm4LHCyY03miI3FZ88mQHaIMPxGwcXa7x1JfYBMuHS3L/ZACPVbI5e6t7I9/hYSwdGxAo/KLFGimI34BrMusH3/7yZ/oZUHmoT50= ARC-Message-Signature: i=2; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1779989709; c=relaxed/simple; bh=vWyg3y9OvFIZosQHFinNhJYy6aIoQ7lsq9Lpinrszno=; h=From:To:Cc:Subject:Date:Message-Id:In-Reply-To:References: Content-Type:MIME-Version; b=rM9CrcqgBp5uigJM1v+co5jtIBNrRLauO+WwJLidUfcEUulHFmwA5oD87QwMZQgrcXL+yrM23SNfUNs64PoGh9Y8ZGce+cSZxBndJTMYDD3XZUxOpqFQV1oSMWzuaWkC/dy9VikNz6FK/gtMwiFUjMub9+/GP9Y+fheS66jHLsU= ARC-Authentication-Results: i=2; smtp.subspace.kernel.org; dmarc=pass (p=none dis=none) header.from=nxp.com; spf=pass smtp.mailfrom=nxp.com; dkim=pass (2048-bit key) header.d=nxp.com header.i=@nxp.com header.b=a9WNSIlh; arc=fail smtp.client-ip=52.101.70.63 Authentication-Results: smtp.subspace.kernel.org; dmarc=pass (p=none dis=none) header.from=nxp.com Authentication-Results: smtp.subspace.kernel.org; spf=pass smtp.mailfrom=nxp.com Authentication-Results: smtp.subspace.kernel.org; dkim=pass (2048-bit key) header.d=nxp.com header.i=@nxp.com header.b="a9WNSIlh" ARC-Seal: i=1; a=rsa-sha256; s=arcselector10001; d=microsoft.com; cv=none; b=VcmhcGVgEbszBXsuSYZVQociGz/7Wu1zfGUSKkKnsjvk0d/qfdh1VbU1cP7XH7+/cGDSgzDfmJAdUKQ/xGzife+zkpN34RXO7aCU3nakeAy7hHOabQ7CFbujuu9Q2B94aIDZrrV3BH2NPBAacPRnSI+POMJKfBLYnD+bjWGOB74CbejF1kUmEFcTbtGrt8LyNADnrRlXSgRfPAyQoBwES08r1Y0bEocGZj0u7cWLgpFJOyGAJT0fWKGsHLQJpQwbGjrJV/l2sZAPBniPVNNzbhxx5ollde+I9nEoKPV7Y86oLu/BQKEuffqKt1mDAcz4hyDsNtsoFbLCukFc2E6ZlA== ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=microsoft.com; s=arcselector10001; h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-AntiSpam-MessageData-ChunkCount:X-MS-Exchange-AntiSpam-MessageData-0:X-MS-Exchange-AntiSpam-MessageData-1; bh=8riqTggaE4PC25T/pYWr1SDYOTdqT20DV63Bo9L4iS0=; b=OHNhmN4sV6DSqDkZyOdpKU9SPHnXYZY6rke91tX65kKGWzFVnuBLCueYfiKuRr8W73UaHTbh1EwTVEUlqf0qap+EpMl4vK5XCXoqCOn3yTVwimz4jwxV1tuuLpJW0MNif47FNg4EFeJhMw1Nwj2ySKNx35YEZdXrJb6bmh1jASsIyQfv39DPfPpCx0Fak5lzz2d4yXaziPJ7/hQBnsFUZ9hS4Ugz3VGh5Uy+KfMrED8sFn2u7/amTVlleo+0I6hGkwx3XBANSwXqeS4DINmIKKdHK+bzbmZgSemmdc9K/TGDda2WKPxPjOz2Kl0aVloYqZ6xGEmDNX5IFM3EBckvLw== ARC-Authentication-Results: i=1; mx.microsoft.com 1; spf=pass smtp.mailfrom=nxp.com; dmarc=pass action=none header.from=nxp.com; dkim=pass header.d=nxp.com; arc=none DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=nxp.com; s=selector1; h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-SenderADCheck; bh=8riqTggaE4PC25T/pYWr1SDYOTdqT20DV63Bo9L4iS0=; b=a9WNSIlhSduaWwFkRDgDN98Ryy2kEamGepukIaZN4f+yoRsSKgdVr8TLj3JHeFLi/ww6SRKmS3BLuSKEVYSYR0k6ztSmkxpIF1XIHj47gCB4kjk3ZFxBe352hUla/6uYnuYyERWDE+ZoGHuTj1QVqGfE93NqQQoC4l58Cp6DtQy750Ht7HcQt5Sc72qrp7MdpUDhNCJZTnAWjC5tzH97JvfqchN9XGKLp2PAu/Owk2iilK1oKq7n/TLywtsZXqf/k76D6zK6aNOye0NfHQq8lZWAULb3gsSKMpfIIHlmj87qtbAHZTy1YDoZm6WH9AgOJQwzgVOYJ1DKY2eE31kKsA== Authentication-Results: dkim=none (message not signed) header.d=none;dmarc=none action=none header.from=nxp.com; Received: from GVXPR04MB12290.eurprd04.prod.outlook.com (2603:10a6:150:319::13) by DU0PR04MB9657.eurprd04.prod.outlook.com (2603:10a6:10:31c::22) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.21.71.13; Thu, 28 May 2026 17:35:04 +0000 Received: from GVXPR04MB12290.eurprd04.prod.outlook.com ([fe80::1739:3404:2175:33dd]) by GVXPR04MB12290.eurprd04.prod.outlook.com ([fe80::1739:3404:2175:33dd%6]) with mapi id 15.21.0071.011; Thu, 28 May 2026 17:35:04 +0000 From: Ioana Ciornei To: andrew+netdev@lunn.ch, davem@davemloft.net, edumazet@google.com, kuba@kernel.org, pabeni@redhat.com, netdev@vger.kernel.org Cc: linux-kernel@vger.kernel.org Subject: [PATCH net-next 1/5] dpaa2-switch: rework FDB management on the bridge leave path Date: Thu, 28 May 2026 20:34:48 +0300 Message-Id: <20260528173452.1953102-2-ioana.ciornei@nxp.com> X-Mailer: git-send-email 2.34.1 In-Reply-To: <20260528173452.1953102-1-ioana.ciornei@nxp.com> References: <20260528173452.1953102-1-ioana.ciornei@nxp.com> Content-Transfer-Encoding: quoted-printable X-ClientProxiedBy: FR4P281CA0189.DEUP281.PROD.OUTLOOK.COM (2603:10a6:d10:ca::14) To GVXPR04MB12290.eurprd04.prod.outlook.com (2603:10a6:150:319::13) Precedence: bulk X-Mailing-List: linux-kernel@vger.kernel.org List-Id: List-Subscribe: List-Unsubscribe: MIME-Version: 1.0 X-MS-PublicTrafficType: Email X-MS-TrafficTypeDiagnostic: GVXPR04MB12290:EE_|DU0PR04MB9657:EE_ X-MS-Office365-Filtering-Correlation-Id: 30d6d217-1efa-413d-3157-08debcdf73f2 X-MS-Exchange-SenderADCheck: 1 X-MS-Exchange-AntiSpam-Relay: 0 X-Microsoft-Antispam: BCL:0;ARA:13230040|19092799006|1800799024|366016|376014|11063799006|56012099006|22082099003|18002099003; X-Microsoft-Antispam-Message-Info: KEY2M8+x5CukSiDMeYOXIC2NBhCMpda4+4YgstqiBNc2ecNukP+P7wxeiwIwKO16KKYy1U++KH+JaSj8XemfmlTFoe16PZl9IuwsVsE1npi9Z3JKRdMlOUZ4jYq7elA3yJasehLGW7LAxFM0euvOoJHczpQtCCwQZD3ZmDGQSWd3GhgttU+vYOtMmUmgkWVrBcu+Ary/leKJcHBsO5IEkKgsm9AfGp6vNzWH0MjwMrxCHxFlvNExnQYGByASoKutleOn/xEH8/LioHCWAVK27qvG6wzmPfGwLUFqDaOZlkBYxk8Dfr5P5W8UlBjivaoc6BkWHFZgY1H8QVpgMciSwCantmQbSYPb+mTxcJvuMDrAKnlp09ZRJhJ+TR2CHWcsdQp6REQb5QfRGNxUALx9SCjTMaf+/kaonCTWWur6e59FnkN8ixUM8ifgL2D5S76wLQa6MvKhTZ2fzg4/aOXKwVooi18CZKVMHhwJwbExLqkgaDak7oEDCWS3Zhxd/o/ceD5XudkbmDquSjxiY7FHRThEASjBB64R3yR0AggZ8Omo8q+0nZwVAlKHKGBGeSZA96+zqzbGjifearrBcqmgvUrBLU3SI+QqsqAy97UeDVauaMYadx9IoB7pTAO31xlq1P+auB4lrD/hGPpemSkrOC9mXTnlK5CCy1+KVZtuuwxDxe4DHVIE0OaES/TnGZJC X-Forefront-Antispam-Report: CIP:255.255.255.255;CTRY:;LANG:en;SCL:1;SRV:;IPV:NLI;SFV:NSPM;H:GVXPR04MB12290.eurprd04.prod.outlook.com;PTR:;CAT:NONE;SFS:(13230040)(19092799006)(1800799024)(366016)(376014)(11063799006)(56012099006)(22082099003)(18002099003);DIR:OUT;SFP:1101; X-MS-Exchange-AntiSpam-MessageData-ChunkCount: 1 X-MS-Exchange-AntiSpam-MessageData-0: =?us-ascii?Q?m5xFs7p6o+ITXkIycN9k7fBg2hxaNJ3nzAn+16/kOHxeKgHj06zlXUOF1O3q?= =?us-ascii?Q?clSqGTPzldSUYUjgBG3tmMdCNo4PmVWaOyjqGKbWPGS81SiFl05GAh+f8Xrv?= =?us-ascii?Q?yrxFpyKrKAPFIHcnHfWZ5aQ7NHqGmr9fcD4u9M59lcQTchMmImggZUv6lW+e?= =?us-ascii?Q?5Tk9g5aapXYfl2jEkcIaqlVp/BZoECCGepO60DPOVn9nqgTJkrSfMWTig/mS?= =?us-ascii?Q?e0zO6dKiACU5fUDa9UyGg3c5G1pVTdMEVZDS4WjiU1Lkip5VG4bY0rc1YaGg?= =?us-ascii?Q?8lHWlODelaAqF023+p8GLelOkdStI/q1ci+kzh+3cGetP50i5n5TFB2XFzcA?= =?us-ascii?Q?Gf4c0SzqmJg8Yud/c0SsYn/WSG4NSLtEA2vdS4DHjNlcMUFKXbQ3HG1d/CBz?= =?us-ascii?Q?TQSggMqTwAw05WE1qR/tLqSLNDwuIQKD/srWsbhC/kjUUR6fCTvYaMYISB/+?= =?us-ascii?Q?qXuJw29Gn52WUcCgeejo5ZfJ0bBsYh0i5eGH1WulJW6p/Dt6H+8UdwyNMeOy?= =?us-ascii?Q?qyvMyfqZPamxtbO3nV7n4BwVpSpiJ1fToOUU3Q1qP5jtj9RqTU4DP+oM8rQe?= =?us-ascii?Q?XzVGr7q14UdlSr0UIghKFIx8ywFgL16MRsyCS63bo91uYOenWOL/Bs1+xDzp?= =?us-ascii?Q?ghlCYEcuOI3dvyG4Tmg/hGSBcY1g2c9b+39/8cqrnNSEsY5zLCprv4kfAk+m?= =?us-ascii?Q?vWkc/qj1NXVuys/TeK7aH5iwm1HG1rAfar/gebBu28nOoo2LXzPmnk5doz3H?= =?us-ascii?Q?idskhZVW81RRogpgLzt1J4IOcO7dYdZ/QmfCERXdDO+4GmhbMucW1QN44H8D?= =?us-ascii?Q?nuJ34bN2IDoXj3/Fh4PHSJtwPvGEysYfRUx+b03UpTUwAIo44ljjVcaVY0Ta?= =?us-ascii?Q?t+qnn3RsH3ee+FuxlDba8WaD3M5fWIVUnBBHw0VqTDAk/048yjU6e7soiZZr?= =?us-ascii?Q?98dOEEnfdAtAdh99MG4rD08oSMof7rC7DNtFTTICq7I8tSwwIMbgoVVWwWs6?= =?us-ascii?Q?HrhQOybiu2C/zHjo21NeZ9kFxiMnUm7wHXwCOCBBq56cyJKPaV9d4fhsO/ME?= =?us-ascii?Q?DR4XCPm6A6y0LdyTQeEi7uyLkbj0mt9ZvUPqFv7nRmmkGKiIwbNXlfbBud0S?= =?us-ascii?Q?fRrScpTxiqmY0+NYwC365GQVKRBPxdapFMuHoP/PFn9PWW9dmmIdXe8JOFpJ?= =?us-ascii?Q?KwrzD3fg+7Fi9z1MW4HK69wlXXzFmooH8OJN3Klf5kse6JlqFGXNgaiwFobh?= =?us-ascii?Q?usvx0rz1tHq12aqTkeLU9vl+GX6ZDFi4SYz6B4oMkTLBN8NkDKyu+u4zHMWk?= =?us-ascii?Q?pT6QwNcZkFIuMFAzwcquYn8hZT1UO7EjQUyFLFl56HewKM5doE76q7DOkcgu?= =?us-ascii?Q?A1KWrXH195Oo3vckflJ2zAD+MFFtc7CDUjfUkZ8X+tfkt1DXKNiRYeQ6dKRx?= =?us-ascii?Q?6xYTAaC6zYVKtVLv3kbEr7pI9ywky7dszSfCQV0DXDgz2zyIUx6GKNv/JDZb?= =?us-ascii?Q?PffeWziP0I6KPK/pUe9LM0pK7Rw9XjsU+uuhg/5LqHyd3/hdL3S1i23YMhnq?= =?us-ascii?Q?49uX2rQEiFrNrP15+xMUlHAkuIyfvnPD5DxhEDIfXY5pYwsJSGaNhA8sdeYy?= =?us-ascii?Q?gdJP1OQSEIaYGkEk3f0Nt2os/j6TZ0OgEJec/yuUFj4B8WiQeYbeUNgCuuk/?= =?us-ascii?Q?b5rcXVGzU5ATu8//2uQKRpaJ0Tmt5OEZkefJNK+R4csvV0L43iw/0KnevwOU?= =?us-ascii?Q?L+lNz2/wcA=3D=3D?= X-OriginatorOrg: nxp.com X-MS-Exchange-CrossTenant-Network-Message-Id: 30d6d217-1efa-413d-3157-08debcdf73f2 X-MS-Exchange-CrossTenant-AuthSource: GVXPR04MB12290.eurprd04.prod.outlook.com X-MS-Exchange-CrossTenant-AuthAs: Internal X-MS-Exchange-CrossTenant-OriginalArrivalTime: 28 May 2026 17:35:04.2912 (UTC) X-MS-Exchange-CrossTenant-FromEntityHeader: Hosted X-MS-Exchange-CrossTenant-Id: 686ea1d3-bc2b-4c6f-a92c-d99c5c301635 X-MS-Exchange-CrossTenant-MailboxType: HOSTED X-MS-Exchange-CrossTenant-UserPrincipalName: 28vguB4ICeybuR+8VXyopoK9u3LFhSq9Uh2SibhYON5BghrmW4VDTKm/k4v3an/jfSVtwrwHK7+4yRBaCA+urA== X-MS-Exchange-Transport-CrossTenantHeadersStamped: DU0PR04MB9657 Content-Type: text/plain; charset="utf-8" On bridge leave, the dpaa2_switch_port_set_fdb() function always allocates a new FDB for the port which is becoming standalone. In case no FDB is found, then the port leaving a bridge will continue to use the current one. The above logic does not cover the case in which there are multiple bridges which have ports from the same DPSW instance. In this case, when the last port leaves bridge #1, it finds an unused FDB to switch to, but the old FDB is not marked as unused. Since the number of FDBs is equal to the number of DPSW interfaces, this will eventually lead to multiple ports sharing the same FDB. Fix this by changing how we are managing the FDBs on the leave path. Instead of directly allocating a new FDB, first verify if the current port is the last one to leave a bridge. If this is the case, then continue to use the current FDB and only allocate another FDB if there are other ports remaining in the bridge. Signed-off-by: Ioana Ciornei --- .../ethernet/freescale/dpaa2/dpaa2-switch.c | 31 ++++++++++++++----- 1 file changed, 24 insertions(+), 7 deletions(-) diff --git a/drivers/net/ethernet/freescale/dpaa2/dpaa2-switch.c b/drivers/= net/ethernet/freescale/dpaa2/dpaa2-switch.c index 52c1cb9cb7e0..782fef26b78e 100644 --- a/drivers/net/ethernet/freescale/dpaa2/dpaa2-switch.c +++ b/drivers/net/ethernet/freescale/dpaa2/dpaa2-switch.c @@ -54,27 +54,44 @@ dpaa2_switch_filter_block_get_unused(struct ethsw_core = *ethsw) static u16 dpaa2_switch_port_set_fdb(struct ethsw_port_priv *port_priv, struct net_device *bridge_dev) { + struct ethsw_core *ethsw =3D port_priv->ethsw_data; struct ethsw_port_priv *other_port_priv =3D NULL; struct dpaa2_switch_fdb *fdb; struct net_device *other_dev; + bool last_fdb_user =3D true; struct list_head *iter; + int i; =20 /* If we leave a bridge (bridge_dev is NULL), find an unused * FDB and use that. */ if (!bridge_dev) { - fdb =3D dpaa2_switch_fdb_get_unused(port_priv->ethsw_data); - - /* If there is no unused FDB, we must be the last port that - * leaves the last bridge, all the others are standalone. We - * can just keep the FDB that we already have. - */ + /* First verify if this is the last port to leave this bridge */ + for (i =3D 0; i < ethsw->sw_attr.num_ifs; i++) { + if (!ethsw->ports[i] || ethsw->ports[i] =3D=3D port_priv) + continue; + if (ethsw->ports[i]->fdb =3D=3D port_priv->fdb) { + last_fdb_user =3D false; + break; + } + } =20 - if (!fdb) { + /* If this is the last user of the FDB, just keep using it. */ + if (last_fdb_user) { port_priv->fdb->bridge_dev =3D NULL; return 0; } =20 + /* Since we are not the last port which leaves a bridge, + * acquire a new FDB and use it. The number of FDBs is sized to + * accommodate all switch ports as standalone, each with its + * private FDB, which means that dpaa2_switch_fdb_get_unused() + * must succeed here. WARN if not. + */ + fdb =3D dpaa2_switch_fdb_get_unused(port_priv->ethsw_data); + if (WARN_ON(!fdb)) + return 0; + port_priv->fdb =3D fdb; port_priv->fdb->in_use =3D true; port_priv->fdb->bridge_dev =3D NULL; --=20 2.25.1 From nobody Mon Jun 8 14:37:43 2026 Received: from AS8PR04CU009.outbound.protection.outlook.com (mail-westeuropeazon11011063.outbound.protection.outlook.com [52.101.70.63]) (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 58E9640801C; Thu, 28 May 2026 17:35:10 +0000 (UTC) Authentication-Results: smtp.subspace.kernel.org; arc=fail smtp.client-ip=52.101.70.63 ARC-Seal: i=2; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1779989712; cv=fail; b=mI4990sSiWuPuRmNELY6xL4otd0W+9O5lc6bYf7QTqBRxufhLx0hOfRX56yXQGjbpB+uRfPqxm3fXyePM/3LxhNWPmzAcHvUyYLXJJtGqwBeSPprvz0JUrc8cctOxdAX4X2UwBKpqRU06VBd5ybIsCX80Ajz+/1Yw4kFDDcmqbs= ARC-Message-Signature: i=2; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1779989712; c=relaxed/simple; bh=XoLDNhonU6dBTlTjjRRcNmc3WGdfLXq2qYCUvrVB2ik=; h=From:To:Cc:Subject:Date:Message-Id:In-Reply-To:References: Content-Type:MIME-Version; b=dr847qxi8ydXpoQqmspvKs+Eqmspz0pK9pLgKdgJIJPq+G0qcfSgCmJUhXrGDlo2PAaNcybtAAhaEYnTrFWvZnnSjfxpPmHNkfQH1ipqsgeLg8X0LjGqOoGgULEEQ0Jz++KEmUVOH+0f0U5noR+YOskLaJmpOgp3NbJf1wi2EaE= ARC-Authentication-Results: i=2; smtp.subspace.kernel.org; dmarc=pass (p=none dis=none) header.from=nxp.com; spf=pass smtp.mailfrom=nxp.com; dkim=pass (2048-bit key) header.d=nxp.com header.i=@nxp.com header.b=Ma/2voFQ; arc=fail smtp.client-ip=52.101.70.63 Authentication-Results: smtp.subspace.kernel.org; dmarc=pass (p=none dis=none) header.from=nxp.com Authentication-Results: smtp.subspace.kernel.org; spf=pass smtp.mailfrom=nxp.com Authentication-Results: smtp.subspace.kernel.org; dkim=pass (2048-bit key) header.d=nxp.com header.i=@nxp.com header.b="Ma/2voFQ" ARC-Seal: i=1; a=rsa-sha256; s=arcselector10001; d=microsoft.com; cv=none; b=EGiVKu6PBVQff3wpgLO2ZJG5s1jV5FKsMpslwnIZ20l0NERcNGkOo2+x/iii0SmE5xm879sSL9XqYNfOXDIkfhZy9aYUCsTwMmyz+1Ha09HUFtvlXHxurVQCR9QK71Osk1FIt/trsq0sNdYI1pn/aLI4iW5DUp4/tqg0Xk3uozRVznrynzb27KQhQcDf8dlMjl1daTEa56fotKqSANVP+NSc8GGt09HjwmobcANE+soxPC8S9rNaJKpYn/Z0SDbs5eaHH9lO6hHOfMZqUpqsMmdIsNtKF+NKMjX9yendary4vrEmDBoFeWPh8C0d0i+Dvo10VBMT+Pu7lDr2duWWaw== ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=microsoft.com; s=arcselector10001; h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-AntiSpam-MessageData-ChunkCount:X-MS-Exchange-AntiSpam-MessageData-0:X-MS-Exchange-AntiSpam-MessageData-1; bh=pAPMBbsxfvm7fJ+cLA2wP7inxCaJOAJONVM0i/vqYkM=; b=K2ix0rRI22vspL5VidU4NIyoDM00JwzcsFESxsETqsNoaNhtGsBdxMVHFdlzIr90Hwh5CmABqB4qxKun6ywCAV96g6zjyNwZkVJufAZQ4rbZoxDxMTEQ+X9D1OhNVvi3/dCsDV3d0yjWD4XqJ47cHUPrHC0r3b1a71uZPMzRbLsQc95F/vgA16pNDe2y9BVeraI0GjabCcnJV+37Bc3UIvOELOqRwpU/azoEfwrV/Kj186exSY7EAQH36oMUMgzPRv9GKUp4zpkNTr5cdTf2K9aJcWQZrXb+pDSCaR3BF0fKaEGEvwwHPmnuCxPx4ZY3w6oxOvbj3CUV0pMLUACcjA== ARC-Authentication-Results: i=1; mx.microsoft.com 1; spf=pass smtp.mailfrom=nxp.com; dmarc=pass action=none header.from=nxp.com; dkim=pass header.d=nxp.com; arc=none DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=nxp.com; s=selector1; h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-SenderADCheck; bh=pAPMBbsxfvm7fJ+cLA2wP7inxCaJOAJONVM0i/vqYkM=; b=Ma/2voFQ4DqtsxXyVjIAx4jDMsI7zyt8kCN1ehnanIbWW6FhvKnsyzo7Txg+CrAfRnpBU6oAvm1nl1l/9elaSsa88/kN+pf0h9l1RjVF/bMk5y6++VClTYhPAqDnYkJeIQ7lucENe3IoEglhpWTyP44Fh20n/bx2uP1f6ICUP3jhsWa2EJAOrqRrPPiLbPDqDMIGKC7I2TZI3+LFQEdQ4MK3i45zUvCftqDoNYH9x0/gg7vyORW3NnT4pgQApzrXbamnbAY5n6m9EXzH+BjLNPf9KziELREo9lv1ko1ifIlmAt4XysfG1mGu2O8h2VNwOL7/qcbSXOFtuNbmyK8lqg== Authentication-Results: dkim=none (message not signed) header.d=none;dmarc=none action=none header.from=nxp.com; Received: from GVXPR04MB12290.eurprd04.prod.outlook.com (2603:10a6:150:319::13) by DU0PR04MB9657.eurprd04.prod.outlook.com (2603:10a6:10:31c::22) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.21.71.13; Thu, 28 May 2026 17:35:06 +0000 Received: from GVXPR04MB12290.eurprd04.prod.outlook.com ([fe80::1739:3404:2175:33dd]) by GVXPR04MB12290.eurprd04.prod.outlook.com ([fe80::1739:3404:2175:33dd%6]) with mapi id 15.21.0071.011; Thu, 28 May 2026 17:35:06 +0000 From: Ioana Ciornei To: andrew+netdev@lunn.ch, davem@davemloft.net, edumazet@google.com, kuba@kernel.org, pabeni@redhat.com, netdev@vger.kernel.org Cc: linux-kernel@vger.kernel.org Subject: [PATCH net-next 2/5] dpaa2-switch: fix the error path in dpaa2_switch_rx() Date: Thu, 28 May 2026 20:34:49 +0300 Message-Id: <20260528173452.1953102-3-ioana.ciornei@nxp.com> X-Mailer: git-send-email 2.34.1 In-Reply-To: <20260528173452.1953102-1-ioana.ciornei@nxp.com> References: <20260528173452.1953102-1-ioana.ciornei@nxp.com> Content-Transfer-Encoding: quoted-printable X-ClientProxiedBy: FR4P281CA0185.DEUP281.PROD.OUTLOOK.COM (2603:10a6:d10:ca::18) To GVXPR04MB12290.eurprd04.prod.outlook.com (2603:10a6:150:319::13) Precedence: bulk X-Mailing-List: linux-kernel@vger.kernel.org List-Id: List-Subscribe: List-Unsubscribe: MIME-Version: 1.0 X-MS-PublicTrafficType: Email X-MS-TrafficTypeDiagnostic: GVXPR04MB12290:EE_|DU0PR04MB9657:EE_ X-MS-Office365-Filtering-Correlation-Id: 62678386-eaf4-485b-6c21-08debcdf7556 X-MS-Exchange-SenderADCheck: 1 X-MS-Exchange-AntiSpam-Relay: 0 X-Microsoft-Antispam: BCL:0;ARA:13230040|19092799006|1800799024|366016|376014|11063799006|56012099006|22082099003|18002099003; X-Microsoft-Antispam-Message-Info: AiVJwe3SEjFERuNKw1hmXen5rtzBBzLyNqtMH3XHSt/d8qZ3UO9+Yzg3KKihI743bo53GOIY8rmx0yYaebCQY7H8V39dKUZqEN7u4GO2izA0rmKfuva09tZTSxYfF2evCUqKyj+wowGb3NREV9HoopONdXUnaSYJiefsGVeE92S2if30rKvuY1h2F/nmEFHdkmlqe6syzv0U7jT7DEch4p63ZHD4F2BB9iMyQ1eCc+IqUuaaEJUWyxRzEPkJJsyxE6wEnx/BNFIX92rRWLGh3+huz6RkA8bdbvwCu8DMIWRviX9LWu1bFFGFsC3xShMYuFvgHPJLFcUrayRCvCmxUMTFkMwzOaabCL3dZ+ioTPcEBGNzG9nGTx8DW+7H6YsijzajfGpANEd3s4ZOZqnuP+UKaf9J5LbQI6Rde8q2AMifzIso3BdZSRPhH/sP1oKiC17tknGtGxqc2/lqyMQ23mYOYO//xN00uAYMvrRtLhBNQ8ctyqxfKqZTsfrq5gPuPB1U4UBypfvnYL1qQrvbFuMRNQX9Mu5UNn605jPrfXaG5OLbQpLJ4tnH+W3BEajDuwPUgAHDYzhh4TK2gVyc92nbSaMsoCON/D2b+XMLYEty07lBZyGBIC3oWmNJZX94KCwQVah3mvdFiK3myw2DYTQiSemuqecEGbjSVnlH5k8vz3ZEvKkO03mPRzPJ9Q4M X-Forefront-Antispam-Report: CIP:255.255.255.255;CTRY:;LANG:en;SCL:1;SRV:;IPV:NLI;SFV:NSPM;H:GVXPR04MB12290.eurprd04.prod.outlook.com;PTR:;CAT:NONE;SFS:(13230040)(19092799006)(1800799024)(366016)(376014)(11063799006)(56012099006)(22082099003)(18002099003);DIR:OUT;SFP:1101; X-MS-Exchange-AntiSpam-MessageData-ChunkCount: 1 X-MS-Exchange-AntiSpam-MessageData-0: =?us-ascii?Q?glBrX/lrXpm3mfO783SIg1PzUdpBJG4SgPNqyuIsrrVXFcCxcXsEk+fGEqYj?= =?us-ascii?Q?Y5/FXFpiT1vpDB+q0RK8wvXBtg/vEqpw3RZJSI4XNSwIStS6gBR1F5iKK0Np?= =?us-ascii?Q?56asJ7BLS0HLuKdiFzqbBYsOX9Evj6djqA7Q0HMAHtmgDv1+3avsuxUPhFBn?= =?us-ascii?Q?tJYdpWElV3hleEXC4nfCj5lU+9OqfglCEalT2fthacqn+Ssq9xCjMd0Gb0xo?= =?us-ascii?Q?YFmR+8c6Qf0SNmF0er3G+owYKJA1W6VAoKiTcC2P5WGO24Y7d0W5sH/5VMIK?= =?us-ascii?Q?Vkov58y70ettuiXLDzNBQUksC8htXOrJKoLWPeIQo/b3ZFWU0EXaE9mYMaM6?= =?us-ascii?Q?+xRrzXWfSPnItU3/a1IBYbXmVwtvU2d0u9h7RD5bYPShwr38JxZd5CWbsdFK?= =?us-ascii?Q?7BgvoLuXVVv8rUf00t3L2PEGLQSXw9TQd9aMaqKadYRf7e/XOaCVN2oA5S2x?= =?us-ascii?Q?20t/sRqEkDFDgQXQTjEVIylW5G6RhxoA3s4WPL7AZcRDKvgGh51FdfPAdIqM?= =?us-ascii?Q?KQIlN4csZv1Fry0kD3GiaVJd2RnI2i+thJRZ1ZvknmgCIFvVE5tpHpo6FaUj?= =?us-ascii?Q?4vW0y92VdndAz9h9fvSG7S774l0LUWAWdO4xTvVAqoqNDHrcAOiKFoEDU19i?= =?us-ascii?Q?pThV0nmSsTQmjaaHCBiP4TvxiGVJ9U6fAxvoR3+AoHRG+2fXoTrBnlSNrgz1?= =?us-ascii?Q?vMhmBBmsFWBL9A5j9XlZlcyFUPD5CpamX0b6JAj3sAbvzCD8a91t0h8mc4A9?= =?us-ascii?Q?31YkCQzL2ssi8qys/QVD63+gLPOvhp2GAeIO0MdMZ9+6y6NI7rwsV+mJ+4P3?= =?us-ascii?Q?99XZ1BbINGLQtg5seJTDwmeEXsDu+CR7hLy7KGYaI5krABLb4njzmqIK+ppc?= =?us-ascii?Q?ItPSYlWSt7JLx452n9p9V4EeSMwLJGoHydlcG0ZdgFzfAjw57TvXNk2AIPFy?= =?us-ascii?Q?kGLNIm7vF3uo0zmvUY+6h7FPOBAYtOuHFXI8UJ6V/KxhDHDKRl3x7lj5VsqG?= =?us-ascii?Q?s6JflYAGn9blbL/mB7jnmKmxpb19eyPVNgdD4T6RaO3i+gKexouZFN1UCngs?= =?us-ascii?Q?li8MnPlrWN8ClXGZ7oZfPj4Xt9IL7GqD+bBX87yAzni8zRSQe/3SQ4JHXDQK?= =?us-ascii?Q?P1Dtv+mqxuWMaTAM6+6hVLlghnSZk+ccJagIhDswmBS2NL0DsloTEPn1pc4E?= =?us-ascii?Q?24fty+d0ZK09CITguyTuyp1Cua6l7zUk+xDcOUcZOI6Bb5fGNX9cb0PGRcWm?= =?us-ascii?Q?J6lyHPsmWPaEwOSXIFiPQoNZDzT45aKvGd0Xz7JceFGkq234PC6Jbq6wCdAA?= =?us-ascii?Q?eKfd2KNeoYkBNhCnPbapComQFhI0PLuVvJrIWDJHUFLU80FBO3rY0zIr9RI3?= =?us-ascii?Q?aCNctBJATFXjYdkEUz6nFHy4D+Rl5VMioVHcH4dUMUcO28Wc9j79N8C9HsTh?= =?us-ascii?Q?N2lyFdbwnpJr5mkEXPMm5PKDOOfX1f1oO5OKW+SEzXvv23ssOhsnpQNE8c3G?= =?us-ascii?Q?H8M9WD/oHSJtDjZW1eXfc+j9tD3aT/sikp5zstwY+f2pzb86KtQ/fBffX1c4?= =?us-ascii?Q?IPrzWfAfp0UCllWm9Wy4HiRzTtG50uqsoKp40NKV0lydm5PM6PCLY55pdPgO?= =?us-ascii?Q?hECzMt013u1hIJLVxBtjVcrx8NyFL4Z1qKsl1p9AENvCiudzGHsITESDrIHP?= =?us-ascii?Q?Y2Of1KJjpLwNkILguMBNgJy7o989u+xdi6sxXzlWICtflpbbJXJrt8AbrIB1?= =?us-ascii?Q?8Br6UepujQ=3D=3D?= X-OriginatorOrg: nxp.com X-MS-Exchange-CrossTenant-Network-Message-Id: 62678386-eaf4-485b-6c21-08debcdf7556 X-MS-Exchange-CrossTenant-AuthSource: GVXPR04MB12290.eurprd04.prod.outlook.com X-MS-Exchange-CrossTenant-AuthAs: Internal X-MS-Exchange-CrossTenant-OriginalArrivalTime: 28 May 2026 17:35:06.6219 (UTC) X-MS-Exchange-CrossTenant-FromEntityHeader: Hosted X-MS-Exchange-CrossTenant-Id: 686ea1d3-bc2b-4c6f-a92c-d99c5c301635 X-MS-Exchange-CrossTenant-MailboxType: HOSTED X-MS-Exchange-CrossTenant-UserPrincipalName: rB+4XWYEWIuZjE4Oexhw2UVN942QtMssDHDva5N08sd51X5QZdMjHW5lJixOFbKygz8xqGeTfGJyu0MoJTjorA== X-MS-Exchange-Transport-CrossTenantHeadersStamped: DU0PR04MB9657 Content-Type: text/plain; charset="utf-8" In case of an error in dpaa2_switch_rx(), the dpaa2_switch_free_fd() function is called in order to free the FD. This is incorrect since the dpaa2_switch_free_fd() is intended to be used on Tx frame descriptors, meaning that it expects in the software annotation area of the FD data to find a valid skb pointer on which to call dev_kfree_skb(). Fix this by extracting the dma_unmap_page() from dpaa2_switch_build_linear_skb() directly into the dpaa2_switch_rx() function. This allows us to directly use free_pages() in case of an error before an SKB was created and kfree_skb() afterwards. Signed-off-by: Ioana Ciornei --- .../ethernet/freescale/dpaa2/dpaa2-switch.c | 23 ++++++++++--------- 1 file changed, 12 insertions(+), 11 deletions(-) diff --git a/drivers/net/ethernet/freescale/dpaa2/dpaa2-switch.c b/drivers/= net/ethernet/freescale/dpaa2/dpaa2-switch.c index 782fef26b78e..53a32b21b959 100644 --- a/drivers/net/ethernet/freescale/dpaa2/dpaa2-switch.c +++ b/drivers/net/ethernet/freescale/dpaa2/dpaa2-switch.c @@ -2429,18 +2429,13 @@ static int dpaa2_switch_port_blocking_event(struct = notifier_block *nb, =20 /* Build a linear skb based on a single-buffer frame descriptor */ static struct sk_buff *dpaa2_switch_build_linear_skb(struct ethsw_core *et= hsw, - const struct dpaa2_fd *fd) + const struct dpaa2_fd *fd, + void *fd_vaddr) { u16 fd_offset =3D dpaa2_fd_get_offset(fd); - dma_addr_t addr =3D dpaa2_fd_get_addr(fd); u32 fd_length =3D dpaa2_fd_get_len(fd); struct device *dev =3D ethsw->dev; struct sk_buff *skb =3D NULL; - void *fd_vaddr; - - fd_vaddr =3D dpaa2_iova_to_virt(ethsw->iommu_domain, addr); - dma_unmap_page(dev, addr, DPAA2_SWITCH_RX_BUF_SIZE, - DMA_FROM_DEVICE); =20 skb =3D build_skb(fd_vaddr, DPAA2_SWITCH_RX_BUF_SIZE + SKB_DATA_ALIGN(sizeof(struct skb_shared_info))); @@ -2466,6 +2461,7 @@ static void dpaa2_switch_tx_conf(struct dpaa2_switch_= fq *fq, static void dpaa2_switch_rx(struct dpaa2_switch_fq *fq, const struct dpaa2_fd *fd) { + dma_addr_t addr =3D dpaa2_fd_get_addr(fd); struct ethsw_core *ethsw =3D fq->ethsw; struct ethsw_port_priv *port_priv; struct net_device *netdev; @@ -2473,10 +2469,14 @@ static void dpaa2_switch_rx(struct dpaa2_switch_fq = *fq, struct sk_buff *skb; u16 vlan_tci, vid; int if_id, err; + void *vaddr; + + vaddr =3D dpaa2_iova_to_virt(ethsw->iommu_domain, addr); + dma_unmap_page(ethsw->dev, addr, DPAA2_SWITCH_RX_BUF_SIZE, + DMA_FROM_DEVICE); =20 /* get switch ingress interface ID */ if_id =3D upper_32_bits(dpaa2_fd_get_flc(fd)) & 0x0000FFFF; - if (if_id >=3D ethsw->sw_attr.num_ifs) { dev_err(ethsw->dev, "Frame received from unknown interface!\n"); goto err_free_fd; @@ -2492,7 +2492,7 @@ static void dpaa2_switch_rx(struct dpaa2_switch_fq *f= q, } } =20 - skb =3D dpaa2_switch_build_linear_skb(ethsw, fd); + skb =3D dpaa2_switch_build_linear_skb(ethsw, fd, vaddr); if (unlikely(!skb)) goto err_free_fd; =20 @@ -2510,7 +2510,8 @@ static void dpaa2_switch_rx(struct dpaa2_switch_fq *f= q, err =3D __skb_vlan_pop(skb, &vlan_tci); if (err) { dev_info(ethsw->dev, "__skb_vlan_pop() returned %d", err); - goto err_free_fd; + kfree_skb(skb); + return; } } =20 @@ -2525,7 +2526,7 @@ static void dpaa2_switch_rx(struct dpaa2_switch_fq *f= q, return; =20 err_free_fd: - dpaa2_switch_free_fd(ethsw, fd); + free_pages((unsigned long)vaddr, 0); } =20 static void dpaa2_switch_detect_features(struct ethsw_core *ethsw) --=20 2.25.1 From nobody Mon Jun 8 14:37:43 2026 Received: from AS8PR04CU009.outbound.protection.outlook.com (mail-westeuropeazon11011063.outbound.protection.outlook.com [52.101.70.63]) (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 12C53409601; Thu, 28 May 2026 17:35:13 +0000 (UTC) Authentication-Results: smtp.subspace.kernel.org; arc=fail smtp.client-ip=52.101.70.63 ARC-Seal: i=2; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1779989715; cv=fail; b=J2E+CXslNjsiGjzEbax88Ze9fIcYPIlQG5YFFOu2DpZCvoazgXlLTiLxrM8EL3lxjn0k3N98SXyGmO/VaHs0inmEmFt1ApTZm0iLDtp0XjjlxaaNSPebcxX6J+naHeUR8VLmsZn1Exlmkxu2iQ+jBjOeOJ5AhhZIOyp8Rs+kLQI= ARC-Message-Signature: i=2; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1779989715; c=relaxed/simple; bh=OuYqXY315S+hhjebqTUmJzt/pnjC+rxfUCgwMQGZET4=; h=From:To:Cc:Subject:Date:Message-Id:In-Reply-To:References: Content-Type:MIME-Version; b=n61c7xs+RMifNY11huqdV6pIaT65uNWpB0nDH49tq4IVvJOiAjOR6uovnTY0sHd/5EAHh1dXeF3SOP+Z32pvVhTn8VfB8U9wI7G9QTneqdD46UGC4oM+RChJ8kl9yIgIS3TwthVJqvW5rfLWy8X/v1u0OFC1pC2wQOwB7zEaaZY= ARC-Authentication-Results: i=2; smtp.subspace.kernel.org; dmarc=pass (p=none dis=none) header.from=nxp.com; spf=pass smtp.mailfrom=nxp.com; dkim=pass (2048-bit key) header.d=nxp.com header.i=@nxp.com header.b=cPJ570G5; arc=fail smtp.client-ip=52.101.70.63 Authentication-Results: smtp.subspace.kernel.org; dmarc=pass (p=none dis=none) header.from=nxp.com Authentication-Results: smtp.subspace.kernel.org; spf=pass smtp.mailfrom=nxp.com Authentication-Results: smtp.subspace.kernel.org; dkim=pass (2048-bit key) header.d=nxp.com header.i=@nxp.com header.b="cPJ570G5" ARC-Seal: i=1; a=rsa-sha256; s=arcselector10001; d=microsoft.com; cv=none; b=jZnNmdwFlisgYCKhoDlcQSJrAQPxF7YFsIVmQT2kC/PDILxRhw+iH1+e0n6Y7jsrS3TpTccu/j9QYiwr2r+0f7B292aLWUZQAGbWALhl5Ai8gcGlB4Itmye1dLq3hKYe+4vzMKxnp7RbMX/eROgHcJu6QpHtAIAiwdB0cKhfmKvo81ArgTjzSYjjw0P5fFFl0pzhgws6IxG2vj9pPdusf2oTjVTnTgo/Ct0YfRXX9G1QCM8kQzW2uzwVJlPv4GgVLnvgsnqLB7z3MdkSm/WY6HJwV+6BQ8r1ARtIut1jVGB9BqY/lvzCXIy26vhLsXqTTyqkzmuQMQ8aR74I5zutdg== ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=microsoft.com; s=arcselector10001; h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-AntiSpam-MessageData-ChunkCount:X-MS-Exchange-AntiSpam-MessageData-0:X-MS-Exchange-AntiSpam-MessageData-1; bh=KX4mBlrLwgXJvp+5bZOux9FanhHr5OYANhiOPm6SEEg=; b=xk/7kPkG7OjEG34hYTA1Usp8JyyUEOxhL8i1QD1MrbVGbAmA8XI5qJ0vGL3qvhFx+irktZ8QJQwan0pOVZzMOcefgsJqgs0y4HUdly0s8GGf03ZarRP0gkEOzGKyw8n1pisKdczmUKFtqAtmJo0GsnIHSkUl9GQPW2sdZdrgHhZnqDku7OkiXJ91/UjesMgEOgsPfILGk5tX+IYihPT9behaCf18S58oxcWM6RBxHB6siploegSdQ/Oa6fQN89yc3XPgIjMbr8ZbSLylPZhXkEtXUNVJyMuGFU9Xigl2ot4ULPx3bDo2Sxxl8Jh5+fMGvaXKvF5TO7oUj/ALYIReIQ== ARC-Authentication-Results: i=1; mx.microsoft.com 1; spf=pass smtp.mailfrom=nxp.com; dmarc=pass action=none header.from=nxp.com; dkim=pass header.d=nxp.com; arc=none DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=nxp.com; s=selector1; h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-SenderADCheck; bh=KX4mBlrLwgXJvp+5bZOux9FanhHr5OYANhiOPm6SEEg=; b=cPJ570G56obpERJpN11dUhPQE8Su1BXNLi4m9gstkpV9dXkn6tXkuqmfmEqGu+vs8uNQwKj3BScM4EjL7vpUVaFFwbVCvHDThXEdgirjzUDQj1JTMuSFkN5Mbw0/vaMDE7HK899KQ10tB4XUe0TiWW0NhX/cSAWF5ETUqVSsLA3xu2ODCn68G1EJyCooJc2g5Uw/OkCuTlbQcGjvcHhIbNUPZnhYK+pnve/Pp5OuE0PForbUSoI9eBb4xmAcayOT1i/XDAF8iXGBayrcAQIScqaaHDwjQguiB8qGFLkBszxz+IUao2AY2p9bVp4nQ7dqwIjPRzbDJ3/UqTypYKo30A== Authentication-Results: dkim=none (message not signed) header.d=none;dmarc=none action=none header.from=nxp.com; Received: from GVXPR04MB12290.eurprd04.prod.outlook.com (2603:10a6:150:319::13) by DU0PR04MB9657.eurprd04.prod.outlook.com (2603:10a6:10:31c::22) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.21.71.13; Thu, 28 May 2026 17:35:09 +0000 Received: from GVXPR04MB12290.eurprd04.prod.outlook.com ([fe80::1739:3404:2175:33dd]) by GVXPR04MB12290.eurprd04.prod.outlook.com ([fe80::1739:3404:2175:33dd%6]) with mapi id 15.21.0071.011; Thu, 28 May 2026 17:35:09 +0000 From: Ioana Ciornei To: andrew+netdev@lunn.ch, davem@davemloft.net, edumazet@google.com, kuba@kernel.org, pabeni@redhat.com, netdev@vger.kernel.org Cc: linux-kernel@vger.kernel.org Subject: [PATCH net-next 3/5] dpaa2-switch: remove duplicated check for the maximum number of VLANs Date: Thu, 28 May 2026 20:34:50 +0300 Message-Id: <20260528173452.1953102-4-ioana.ciornei@nxp.com> X-Mailer: git-send-email 2.34.1 In-Reply-To: <20260528173452.1953102-1-ioana.ciornei@nxp.com> References: <20260528173452.1953102-1-ioana.ciornei@nxp.com> Content-Transfer-Encoding: quoted-printable X-ClientProxiedBy: FR4P281CA0195.DEUP281.PROD.OUTLOOK.COM (2603:10a6:d10:ca::20) To GVXPR04MB12290.eurprd04.prod.outlook.com (2603:10a6:150:319::13) Precedence: bulk X-Mailing-List: linux-kernel@vger.kernel.org List-Id: List-Subscribe: List-Unsubscribe: MIME-Version: 1.0 X-MS-PublicTrafficType: Email X-MS-TrafficTypeDiagnostic: GVXPR04MB12290:EE_|DU0PR04MB9657:EE_ X-MS-Office365-Filtering-Correlation-Id: 2a9ca22d-a7ee-4fc3-a91c-08debcdf76c2 X-MS-Exchange-SenderADCheck: 1 X-MS-Exchange-AntiSpam-Relay: 0 X-Microsoft-Antispam: BCL:0;ARA:13230040|19092799006|1800799024|366016|376014|11063799006|56012099006|22082099003|18002099003; X-Microsoft-Antispam-Message-Info: rDEOT3ngo95vILM5j10lTZ1Z/cM1/5gqr2U/SioXE0cX+xS2ZSZADZkIWjdCloafNWvVkri+r3aYZtiCWeInnasDEeyA69cGJjKnNSCoOXNbP5M3aR78nMNnBasEbrY6zs2Ixf/T8+dp8s2/yLbuAY0RtnpETjuHZppo0yQpsVC7s/m3kXpBdbgjW5VFnZPtNwq1uRcaZD5M0UuDxAEon39xY+cK/9/xmKhL5SSXjtklZQZ6HRs/EtX5LYs0D5VUwb8fYbKPE3mRk0MNrfmWJ3gvLX+sItlBeDO/dyMd+SvbnqSCn76k26CMWXIoT7AiGnKnwZLXbGEKuMzJT7zY2+6hdjIUyJhkBtLqyVxO01lTTh+mg6jM5VMXTtU+0cmJ3lVo1pLbXO3mB3c85sR1TRF5zGHCPEeo0bqyjzessGVBLQeTCSyu6LFY10lv3wdvh9Spi+R1/rl5JSi8P9VmW2ryRnxc8W/5zOkKduSxqcnPXt4yrSnGWC272mZFMQeDPHNSsB8PZ0FbSo5h06b9dC+44ph1IRq+ysw1JIg7xA5x3BlqGM9xLcZzGmGMgThhdHiOZ/AoRlLjfO9/f+oX76We6uelRQTuY0QUQOSbayIcPrLP3M1Nc/U9Mc+jr+zIwsbC1PuAgglnkhsRJ3zu+Xor4dj9NKqclyhEk3Fu5NkSppxfxfR6WPOPV4NrUfsi X-Forefront-Antispam-Report: CIP:255.255.255.255;CTRY:;LANG:en;SCL:1;SRV:;IPV:NLI;SFV:NSPM;H:GVXPR04MB12290.eurprd04.prod.outlook.com;PTR:;CAT:NONE;SFS:(13230040)(19092799006)(1800799024)(366016)(376014)(11063799006)(56012099006)(22082099003)(18002099003);DIR:OUT;SFP:1101; X-MS-Exchange-AntiSpam-MessageData-ChunkCount: 1 X-MS-Exchange-AntiSpam-MessageData-0: =?us-ascii?Q?1RnBmpAnlhidTZNXWX51lYnjw9bB2fYDkOilw/Y9hU2H5EvZIjM8pFpp4uN7?= =?us-ascii?Q?lqI6FUZx+fXGLBYWL1IK8vArf2/fjiC7g7MYN6FZSlmpkRj6qm47Z+agqVcK?= =?us-ascii?Q?kI3ZDeNR4A3Dv9EmWuJrKCV9q9Z6XBIGIot5rH49tea1O4+avBEz0vdtOOeS?= =?us-ascii?Q?YomdmN3fZyvCpcFbtQhGi9f9fzQbfEcG+7HYN3e6P3wxXZTteauugDvQgVw1?= =?us-ascii?Q?2MjUwYu4E4/+JozNqUyqQAN/lSzt+PeRH53Tg62UqIX36ULssKjeCIdsmufN?= =?us-ascii?Q?yziRuQUEaHEVAfMFdzx2Bgfra1BMR+GNjb90fImc8lH32Ym2gRwe9hWNB/7C?= =?us-ascii?Q?e8YT44cXjocFiGNJNY1kktjyNNGwGlN1aNey0L9TYcdUmF/Y2CZzUayVPvh1?= =?us-ascii?Q?5sI6JwZs1wHBJyGGUQOPaUd7PmQNoNqtAdplSmd+NpKz8U5m8a5Phij0YIT/?= =?us-ascii?Q?yhiheuAmcR6gf1GrXxCt57MGnYc1L+009F2emXvQTxSi7o3rKOHqBJlhiNmh?= =?us-ascii?Q?T0a7r0O8giEt1BgZb/4au9iGjtLaCLjn/vGpWkQUBAmxKvdWtHVQuZUcIYIX?= =?us-ascii?Q?VYvYOgO2Tuz/QrYv8ek6kgDiXqTiIgsKfLnTdLoCVvw9/ZYg8n2tfN1qsug2?= =?us-ascii?Q?vcCDfJ0Vig0R0jvhB6nt+4yICblli3SQy9lJFd18u3BH80MIGVnOAi43Laq6?= =?us-ascii?Q?L7bBi1dY1UdJc3Zl0DKKmSBsNpGV8T2ZToDqDErnt+gWn5D1jbtN/tAukqYW?= =?us-ascii?Q?vFGZLFiRbamv8dSNQ8YDYSdHb0meTPyuXSJeaSieB61xYOqcC7Osn/367wko?= =?us-ascii?Q?WoUiz4jBx06eRW9y+rhURbAIvEmaT+qDIa3M0VEO0XdKglIgkAYFWOG4yXll?= =?us-ascii?Q?kFpkC+acSQcjsKrW3gqm/kI1FjRpe7qgc9lktP31AvQ+JDLYSK6bUAe3GnvE?= =?us-ascii?Q?ypYHlx+KyNyxwTylMQmZuvKmAh4sEjKanMASBvf3kg6lWuxU6Kx6v7uF0268?= =?us-ascii?Q?HjrjEdSgpRVnNhigsq2wAtHRKQPt2kDM/FgJozFqUS09UiUne5S1+hQ3g1tp?= =?us-ascii?Q?mP27BW6FCRZ9vP5AdFhS7+p6eQJMMVA+o4dgA6ckc9W1iiUy8ys1ljZU7Ujs?= =?us-ascii?Q?SNza+PjBkWy2Mbi8ttmq8ZGsKxZNXySiaB301QwDVr+QxOymI4bvNzQaNygi?= =?us-ascii?Q?qYm6YFkYEBUpEEQDLGxpups3uGCyxYRMI3QgoG15g1xWyY5HwzxXRciIoipu?= =?us-ascii?Q?a5GWK1RhQns09rkMcQ/YBakooV7BV9LlhKp6gtbtBkWSpaumj4AHNg1yRIy0?= =?us-ascii?Q?Dh/hbvJUR86ZVGW1IMCa7+21PVkGqgvpv7PnBqn/DZrGjGOR2QlgdWUqJAZq?= =?us-ascii?Q?41M1PC4Rn2zm/8V2shOyqqvlahxI+eRxCOdSLgcDv1qrP6o+RLJJeZ/1/zRy?= =?us-ascii?Q?WWewQ2B2gwOTNI6BSpx+TTunSA9zIG+8xm7Trb+UUwAEjGPwMNNrJQSFj7ax?= =?us-ascii?Q?/9XiFtelpLZgZWA9cLKxFwrpzak3iLWn5Ii9lvFHJcUguX385WF2TBqNY5UA?= =?us-ascii?Q?JX+nWCwuhjzb++Co7ocO4z4xXnx1wgGlDeOPXNViiC5aMVeRe747uFogZv4l?= =?us-ascii?Q?5meYfCxib+ZTZLlwN+k9ZX/d0pniuALmIAn50wmT/L1k6PjIMZrc0jHM+Yow?= =?us-ascii?Q?Iipqn/BNpro7YiR4sz2OTRn39viV5qzQLYsQy7WdMjnXfLz6N8hsfBTofAD+?= =?us-ascii?Q?Nv5tBA97Bg=3D=3D?= X-OriginatorOrg: nxp.com X-MS-Exchange-CrossTenant-Network-Message-Id: 2a9ca22d-a7ee-4fc3-a91c-08debcdf76c2 X-MS-Exchange-CrossTenant-AuthSource: GVXPR04MB12290.eurprd04.prod.outlook.com X-MS-Exchange-CrossTenant-AuthAs: Internal X-MS-Exchange-CrossTenant-OriginalArrivalTime: 28 May 2026 17:35:09.0122 (UTC) X-MS-Exchange-CrossTenant-FromEntityHeader: Hosted X-MS-Exchange-CrossTenant-Id: 686ea1d3-bc2b-4c6f-a92c-d99c5c301635 X-MS-Exchange-CrossTenant-MailboxType: HOSTED X-MS-Exchange-CrossTenant-UserPrincipalName: V/bcXf2nOe34gKCg6O/pF2vJd5t8Leqvw5kGXcdzDDvbQTO8nR8t0epy8HHZ1j/EIGvlWjqNQHKV+DB4Z9HAaA== X-MS-Exchange-Transport-CrossTenantHeadersStamped: DU0PR04MB9657 Content-Type: text/plain; charset="utf-8" The check for the maximum number of VLANs is exactly duplicated twice in the dpaa2_switch_port_vlans_add() function. Remove one of the instances so that we do not have dead code. Signed-off-by: Ioana Ciornei --- drivers/net/ethernet/freescale/dpaa2/dpaa2-switch.c | 10 ---------- 1 file changed, 10 deletions(-) diff --git a/drivers/net/ethernet/freescale/dpaa2/dpaa2-switch.c b/drivers/= net/ethernet/freescale/dpaa2/dpaa2-switch.c index 53a32b21b959..4022635171b5 100644 --- a/drivers/net/ethernet/freescale/dpaa2/dpaa2-switch.c +++ b/drivers/net/ethernet/freescale/dpaa2/dpaa2-switch.c @@ -1811,16 +1811,6 @@ int dpaa2_switch_port_vlans_add(struct net_device *n= etdev, return -EEXIST; } =20 - /* Check if there is space for a new VLAN */ - err =3D dpsw_get_attributes(ethsw->mc_io, 0, ethsw->dpsw_handle, - ðsw->sw_attr); - if (err) { - netdev_err(netdev, "dpsw_get_attributes err %d\n", err); - return err; - } - if (attr->max_vlans - attr->num_vlans < 1) - return -ENOSPC; - /* Check if there is space for a new VLAN */ err =3D dpsw_get_attributes(ethsw->mc_io, 0, ethsw->dpsw_handle, ðsw->sw_attr); --=20 2.25.1 From nobody Mon Jun 8 14:37:43 2026 Received: from AS8PR04CU009.outbound.protection.outlook.com (mail-westeuropeazon11011063.outbound.protection.outlook.com [52.101.70.63]) (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 9DB8640963D; Thu, 28 May 2026 17:35:16 +0000 (UTC) Authentication-Results: smtp.subspace.kernel.org; arc=fail smtp.client-ip=52.101.70.63 ARC-Seal: i=2; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1779989718; cv=fail; b=ZPGiHnoj4V38GlwUEBNrECdf6Qgl48l4J1c0b0N7Zsir7Swvb1ecUPVEGtJlCnJdX/5TYLMZVGtQOrndauR9AHmDwqR92El+Y8aglis+namCZiubI4T5YeY5D4mRgWx1oGqMHYIQcCRfEoZpff8bcHeRvM6nup+ybwCWnwHLYpo= ARC-Message-Signature: i=2; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1779989718; c=relaxed/simple; bh=/OkFmwIzrntvsm4Z3Sz2K7RkXtjs4qjnKgiGa/k3Me8=; h=From:To:Cc:Subject:Date:Message-Id:In-Reply-To:References: Content-Type:MIME-Version; b=UtpyZ9kNqfU9AXCOz5Ft/KNKqwNFTDqMvOGk29EAFrmWLKcVVkqpr98Omh71vrSnu5cfarqVTviW2bU4agLMHfzWSsuQBWI723wG1khPW/13bz6P1/e0u24ZqBqOuSRHhE4I2BQVz9OykwNfOC7jogIuJGeZBWQVVLmXStXWzJw= ARC-Authentication-Results: i=2; smtp.subspace.kernel.org; dmarc=pass (p=none dis=none) header.from=nxp.com; spf=pass smtp.mailfrom=nxp.com; dkim=pass (2048-bit key) header.d=nxp.com header.i=@nxp.com header.b=hiCNAsE1; arc=fail smtp.client-ip=52.101.70.63 Authentication-Results: smtp.subspace.kernel.org; dmarc=pass (p=none dis=none) header.from=nxp.com Authentication-Results: smtp.subspace.kernel.org; spf=pass smtp.mailfrom=nxp.com Authentication-Results: smtp.subspace.kernel.org; dkim=pass (2048-bit key) header.d=nxp.com header.i=@nxp.com header.b="hiCNAsE1" ARC-Seal: i=1; a=rsa-sha256; s=arcselector10001; d=microsoft.com; cv=none; b=HJFfvJYNZkvbksca3/x7lra8UrM57P603PkvWfhedmWhexP2AtmyAVOZg3YVeb2yFcm1l6YIRr4gLN9ty+iODxAgpfehqBwsFCZ6jBJqG36rC0bfCO9RlGxHfo8P0YCfYFBIPVPz2/DBMQJr+Jk6hOmIi/ML+SdKSyB2AG+OhhO2Tf5ew1ro24x8w9CpdJ67GqYVmEKdZuePZJya9Rt0S1ZH7OpFoha2SCOBunAkMF2AIbyL55DWivpcuQwYtcmBIaCiixGXnpFXFaDrimgy29FejDcWW25llxHIuaX04PQ9DhL+W6yspEfN6kWfDwUelZIOK66xfvnf+rvO3vjz9w== ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=microsoft.com; s=arcselector10001; h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-AntiSpam-MessageData-ChunkCount:X-MS-Exchange-AntiSpam-MessageData-0:X-MS-Exchange-AntiSpam-MessageData-1; bh=oai8LVlNxOOnu80jZET2W7Nr6Qq6ZXiexZ0CCCFKbgw=; b=J4Rcx+tsopchrtQoizXLqp6HWYC9uBqy7tANxqklEcJCvx1cjQ71rDqWFcIkF17pJss1ma4nPexrYMOVkmd9A82mVC3zFoesoFch0CO91He6YNIRASkeQmqXZ+m9NVZUSKc9WoEtH7lHVhnglSkmsvm0mNewRp37N5jur3HSwR7CfV7KXeGg7MsnC4WyZI+nEAZDWfrwpoyiAiRDNTHdwC8h2ma3ipjr3muliVxbcli1A4WEsFrxLUaH36vgwsW+5PHgMqFOaCG9CoG6p+YndDQkDRwgnMVHhdcxJQWA/F3/t407VL3Vhsh+juFCX7eDEgfoVjxqxso7hIqmx7BJyg== ARC-Authentication-Results: i=1; mx.microsoft.com 1; spf=pass smtp.mailfrom=nxp.com; dmarc=pass action=none header.from=nxp.com; dkim=pass header.d=nxp.com; arc=none DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=nxp.com; s=selector1; h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-SenderADCheck; bh=oai8LVlNxOOnu80jZET2W7Nr6Qq6ZXiexZ0CCCFKbgw=; b=hiCNAsE19sksuwpfEA17QmHPFvFYEsuDhGBzEP1BH34Ehtz9V4Byrbh9aU/1qWFCMwZpPk2vrODGoZCZ9nlmptCE3ksqEkowAuW7E8sGMFzl2a6tJ81vurKvBXrQgQjxEe45Gol2wMZYOmj6K4Xiy6PyoITTTFjUpwYUeB4nmNVso/LDZoxrO/ytnmeq3oVhsJvW6VCOmK6jFoJg81OWo+FVPBUXtFTlVB7JIBXtX5Z2M4Y/8B/nGBoreFso7xciDZXJ/IxayOYBYWS3shIEkE1ZYaEAwLyP0Q64nfMYKiBas9ew+zhaUEhY2TjoCQIlNzei9HSYX+t8vQFWpX94cw== Authentication-Results: dkim=none (message not signed) header.d=none;dmarc=none action=none header.from=nxp.com; Received: from GVXPR04MB12290.eurprd04.prod.outlook.com (2603:10a6:150:319::13) by DU0PR04MB9657.eurprd04.prod.outlook.com (2603:10a6:10:31c::22) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.21.71.13; Thu, 28 May 2026 17:35:11 +0000 Received: from GVXPR04MB12290.eurprd04.prod.outlook.com ([fe80::1739:3404:2175:33dd]) by GVXPR04MB12290.eurprd04.prod.outlook.com ([fe80::1739:3404:2175:33dd%6]) with mapi id 15.21.0071.011; Thu, 28 May 2026 17:35:11 +0000 From: Ioana Ciornei To: andrew+netdev@lunn.ch, davem@davemloft.net, edumazet@google.com, kuba@kernel.org, pabeni@redhat.com, netdev@vger.kernel.org Cc: linux-kernel@vger.kernel.org Subject: [PATCH net-next 4/5] dpaa2-switch: support VLAN flag changes on existing VIDs Date: Thu, 28 May 2026 20:34:51 +0300 Message-Id: <20260528173452.1953102-5-ioana.ciornei@nxp.com> X-Mailer: git-send-email 2.34.1 In-Reply-To: <20260528173452.1953102-1-ioana.ciornei@nxp.com> References: <20260528173452.1953102-1-ioana.ciornei@nxp.com> Content-Transfer-Encoding: quoted-printable X-ClientProxiedBy: FR4P281CA0183.DEUP281.PROD.OUTLOOK.COM (2603:10a6:d10:ca::6) To GVXPR04MB12290.eurprd04.prod.outlook.com (2603:10a6:150:319::13) Precedence: bulk X-Mailing-List: linux-kernel@vger.kernel.org List-Id: List-Subscribe: List-Unsubscribe: MIME-Version: 1.0 X-MS-PublicTrafficType: Email X-MS-TrafficTypeDiagnostic: GVXPR04MB12290:EE_|DU0PR04MB9657:EE_ X-MS-Office365-Filtering-Correlation-Id: abee623e-cbf6-4709-21c9-08debcdf782e X-MS-Exchange-SenderADCheck: 1 X-MS-Exchange-AntiSpam-Relay: 0 X-Microsoft-Antispam: BCL:0;ARA:13230040|19092799006|1800799024|366016|376014|11063799006|5023799004|6133799003|56012099006|22082099003|18002099003; X-Microsoft-Antispam-Message-Info: eep5NBHnd5uOaCQS3VTtRmKNr6vVyVv2h3xlZTzOWLK+S5HAMnDsc5hd8Y0usE0qhKJJY74H8hYHkW/rT9fhOd/OxY+swUyaT3y2U9KJh8E/9upFLQPz5jY9s1LBSqzP3hwlAkj0w9I45y9jy8dX5heKvdE5RzDQxzBB47HdrLtN5qHcwiarFEJ0HvwcvSGqfdZzL4D76qRaSIfO6es8IrW7au+HIbMn2QhNj+0xL6oULehYIOtIzxWf+qlGeIq9ZR5WpxzGvxdOasi6+6Ff/m2xYxEfWbB/NdX/9tiQLFG2qJBkmIYUWtdjHDEdZd/9HeAO0sM1oPDQU0mmklCowUCmhJTDJtMVFm9pG7pimyG96vPosk3UgubK+DBMkPOf23kG7Z1ikT3VDVUqFVHyosBMNGpdt1fVZGtqlp44ppgIJ1Q/K9zO6Hs7aSAr7SQDTW0/Ono9IxCEP/kV3wM/zgeSimZ/jQYcxCtw2VVZkhqOYokq9BRsoFfhTej1JvgpF2L8TPyX24N0sNbQebuvzcS7eeTppxCD2RXpKDWtte6qe9LezXR2Ff9kA/uoE3YCpAE0vmD3XqknBjiNjmykZ9Tn9KHwLdqlRoLULWR4F8zSlIcLcpQGr2kHUL2kKs/qRSNCjQtUo9kP9NxJrhcHUJGBW39QoV6WkISik5kriy1Ml4crG887EshS1+om8YXB X-Forefront-Antispam-Report: CIP:255.255.255.255;CTRY:;LANG:en;SCL:1;SRV:;IPV:NLI;SFV:NSPM;H:GVXPR04MB12290.eurprd04.prod.outlook.com;PTR:;CAT:NONE;SFS:(13230040)(19092799006)(1800799024)(366016)(376014)(11063799006)(5023799004)(6133799003)(56012099006)(22082099003)(18002099003);DIR:OUT;SFP:1101; X-MS-Exchange-AntiSpam-MessageData-ChunkCount: 1 X-MS-Exchange-AntiSpam-MessageData-0: =?us-ascii?Q?LVDeFZRtcTcgDsla9Z5dMVlhXwRsB8l4Iv/MJX1J0oKA6l8f0hRtit5j+ExZ?= =?us-ascii?Q?NqvsmHVpN8n9dr/TJ7wCDrPOKrQyynBfWi0p5/U3ZmjUZU1p9cogiuQXtyFt?= =?us-ascii?Q?fQE00LJfnnQoVe4/w67KsYtMJ3Qt5QTjZsBMQQHlPHsxsuLYCDLHThiw9LlO?= =?us-ascii?Q?nkOEfaxbLRGO4+L8xU/FBKis8Gx5py99eXbNFj2kCJBlil8akRdAD+PSgUm8?= =?us-ascii?Q?1nf6ssqC4y+xxsu4G6vxdiY20903en6mN+UGyOWMPKPFnInXRbNgdIwj0QHG?= =?us-ascii?Q?WK/+DDj9djfihf6pdHigGpSSoRM612EgDnhifUCVlN3FT1Zmcy/fqDxS5r+M?= =?us-ascii?Q?A7mjVOZ3HD3FT6OVmI8+YRLIDc7JjT6Y9jBHprsu7a/ccH2RkOY4O8/2rBAN?= =?us-ascii?Q?r6Rz0jTQe3pQtyfphkFa1dricVLNuYKlX73hKMW6RxPNe4ZdT/WjdNaXBfjs?= =?us-ascii?Q?iMtsdni7JHexhzWNOKUntXi179JflNRLcsYtq1wNHgiRZRJpFCf5TP7NONAP?= =?us-ascii?Q?/R0nKlDAQG68gwnOGaRnI3drqQhQAKXG14N7Ha58MnBCubrcHs42QjHtMuJb?= =?us-ascii?Q?ENjYKqExdWFz4ld/KNcLAsilPshHBc9TVoCtDYMaEXa71FIv0nvY0DjHheKU?= =?us-ascii?Q?ep/m8LBj3euokR7+5cA6DrGYUxrfTgYEBG5cemU31IkvmibsUuWJngfvYY9u?= =?us-ascii?Q?SXhABXHVNhPb+mPoVBWZUn5E6gwGdCa48KvfxGN9TdIIkNPySu5BtN8aWGJZ?= =?us-ascii?Q?fIwdllmew8Wu942i9vDDkqj+eoiwRf5oWNMlw5ctguuPBZzQYuEMSo/pcnkX?= =?us-ascii?Q?axo5ve5hxRz2vrfsoSV5MtFXGJ2o0O/iDGVefYsxB/LsDnlcTqzyxSskNLLO?= =?us-ascii?Q?tacwx6NLFMHL1meBt70tJDrewSVVXCFRetQSBQQynSScNGT5wv7aPtJFwxRx?= =?us-ascii?Q?+TuXS5CWsbTJrLchTvCrtMsGqdugsBvYT39UwqfZFCrwD+9u3vXqvmPKAYwe?= =?us-ascii?Q?C4d+tSYKN/b90EWD3yXwklV5cnPJsdyT27Q/BLzPBEIq4iQJdbn0f04DkXNr?= =?us-ascii?Q?MSIsT3EHBz8KAcIPQOXRC8qugmouEOLzxBDJyXP/4UqtEnRZm1qfJnyk/3iU?= =?us-ascii?Q?iL8lHf9hbHwRMvPE81joBuQ+Lg7DdLvTXOaOmwA85jTs+zuBYVBC+w19EMQC?= =?us-ascii?Q?A58b718YCTt3HFXz7xQf8j2FgbuIek8vCGQc2HlZPzmjJk11+Pm5E3cVFNFn?= =?us-ascii?Q?0/HyblWEHY3JZVDzO/2jQOySbPr9PpYPzhnSCrJDetcfEqpEnEAs2/P8DgG3?= =?us-ascii?Q?RimCtY/LA7QRIPoRXSfA/0PnGVdubLcSN6gxVIglPG74A46wzjppeafJ4/Uy?= =?us-ascii?Q?61JQEIKeOpj3yDd/86KJiok+A3f3rsmXSNEMGnYbpAQ6EI2l3C16Z+GyUPvG?= =?us-ascii?Q?NZbf0tR1Qz+iZfzkGJO0LWF+LvqsZ6kkimWUgyoRYzwquHSSihzeTZvMyVBR?= =?us-ascii?Q?aHbk9hbkht1NcQKxQUmwEnIyLJekQQEjVvWFaROImPXX+zJyJeJv9Qc2hfc5?= =?us-ascii?Q?CljJ8cOV4/0A7zQLT30jLywiYLVNQYpt11+HVbwdU2unK8APouMdusQV3R+Z?= =?us-ascii?Q?gnjMWbkePBRJU2/vfYI/DF2COs3ClTQ7ct1B6jvUonMHWLCiKNJsVZU1Kued?= =?us-ascii?Q?k5P4qqLm8tHOpNchInCwiv5RmwlMkbBYm1j7H87+l4JESQPI3qPiJVcYcSI9?= =?us-ascii?Q?fgzvUzD3GQ=3D=3D?= X-OriginatorOrg: nxp.com X-MS-Exchange-CrossTenant-Network-Message-Id: abee623e-cbf6-4709-21c9-08debcdf782e X-MS-Exchange-CrossTenant-AuthSource: GVXPR04MB12290.eurprd04.prod.outlook.com X-MS-Exchange-CrossTenant-AuthAs: Internal X-MS-Exchange-CrossTenant-OriginalArrivalTime: 28 May 2026 17:35:11.3966 (UTC) X-MS-Exchange-CrossTenant-FromEntityHeader: Hosted X-MS-Exchange-CrossTenant-Id: 686ea1d3-bc2b-4c6f-a92c-d99c5c301635 X-MS-Exchange-CrossTenant-MailboxType: HOSTED X-MS-Exchange-CrossTenant-UserPrincipalName: w3svWsm6KuFmuRAIMtP8bpDsIQrs5PzWCoaIuzwiCr3TAelLvdVXgFd3UAqwot7HR4609plSO4CuNtVdKgFM2w== X-MS-Exchange-Transport-CrossTenantHeadersStamped: DU0PR04MB9657 Content-Type: text/plain; charset="utf-8" The switchdev core notifies the driver on VLAN flag changes on existing VIDs through the changed field of the switchdev_obj_port_vlan structure. Without this patch, the driver was erroring out from the start if the same VID was inserted twice, from its perspective, even though the second call was actually a flag change. $ bridge vlan add dev eth2 vid 30 untagged $ bridge vlan add dev eth2 vid 30 [ 458.589534] fsl_dpaa2_switch dpsw.0 eth2: VLAN 30 already configured This patch fixes the above behavior by, first of all, removing the checks and return of errors on a VLAN already being installed. The patch also moves the sequence of code which checks if there is space for a new VLAN so that the verification is being done only for VLANs not know by the switch and not flag changes. A new parameter is added to the dpaa2_switch_port_add_vlan() function so that we pass the vlan->changed necessary information. Based on this new parameter and the flags value, the untagged flag will be added or removed from a VLAN installed on a port. The same thing is also extended to the PVID configuration. Signed-off-by: Ioana Ciornei --- .../ethernet/freescale/dpaa2/dpaa2-switch.c | 100 ++++++++++-------- 1 file changed, 58 insertions(+), 42 deletions(-) diff --git a/drivers/net/ethernet/freescale/dpaa2/dpaa2-switch.c b/drivers/= net/ethernet/freescale/dpaa2/dpaa2-switch.c index 4022635171b5..505ccaa93ee4 100644 --- a/drivers/net/ethernet/freescale/dpaa2/dpaa2-switch.c +++ b/drivers/net/ethernet/freescale/dpaa2/dpaa2-switch.c @@ -298,49 +298,68 @@ static int dpaa2_switch_port_set_pvid(struct ethsw_po= rt_priv *port_priv, u16 pvi } =20 static int dpaa2_switch_port_add_vlan(struct ethsw_port_priv *port_priv, - u16 vid, u16 flags) + u16 vid, u16 flags, bool changed) { struct ethsw_core *ethsw =3D port_priv->ethsw_data; struct net_device *netdev =3D port_priv->netdev; struct dpsw_vlan_if_cfg vcfg =3D {0}; int err; =20 - if (port_priv->vlans[vid]) { - netdev_err(netdev, "VLAN %d already configured\n", vid); - return -EEXIST; + if (!port_priv->vlans[vid]) { + /* If hit, this VLAN rule will lead the packet into the FDB + * table specified in the vlan configuration below + */ + vcfg.num_ifs =3D 1; + vcfg.if_id[0] =3D port_priv->idx; + vcfg.fdb_id =3D dpaa2_switch_port_get_fdb_id(port_priv); + vcfg.options |=3D DPSW_VLAN_ADD_IF_OPT_FDB_ID; + err =3D dpsw_vlan_add_if(ethsw->mc_io, 0, ethsw->dpsw_handle, + vid, &vcfg); + if (err) { + netdev_err(netdev, "dpsw_vlan_add_if err %d\n", err); + return err; + } + + port_priv->vlans[vid] =3D ETHSW_VLAN_MEMBER; } =20 - /* If hit, this VLAN rule will lead the packet into the FDB table - * specified in the vlan configuration below - */ + memset(&vcfg, 0, sizeof(vcfg)); vcfg.num_ifs =3D 1; vcfg.if_id[0] =3D port_priv->idx; - vcfg.fdb_id =3D dpaa2_switch_port_get_fdb_id(port_priv); - vcfg.options |=3D DPSW_VLAN_ADD_IF_OPT_FDB_ID; - err =3D dpsw_vlan_add_if(ethsw->mc_io, 0, ethsw->dpsw_handle, vid, &vcfg); - if (err) { - netdev_err(netdev, "dpsw_vlan_add_if err %d\n", err); - return err; - } - - port_priv->vlans[vid] =3D ETHSW_VLAN_MEMBER; =20 if (flags & BRIDGE_VLAN_INFO_UNTAGGED) { - err =3D dpsw_vlan_add_if_untagged(ethsw->mc_io, 0, - ethsw->dpsw_handle, - vid, &vcfg); + if (!(port_priv->vlans[vid] & ETHSW_VLAN_UNTAGGED)) { + err =3D dpsw_vlan_add_if_untagged(ethsw->mc_io, 0, + ethsw->dpsw_handle, + vid, &vcfg); + if (err) { + netdev_err(netdev, + "dpsw_vlan_add_if_untagged err %d\n", + err); + return err; + } + port_priv->vlans[vid] |=3D ETHSW_VLAN_UNTAGGED; + } + } else if (changed && (port_priv->vlans[vid] & ETHSW_VLAN_UNTAGGED)) { + err =3D dpsw_vlan_remove_if_untagged(ethsw->mc_io, 0, + ethsw->dpsw_handle, + vid, &vcfg); if (err) { netdev_err(netdev, - "dpsw_vlan_add_if_untagged err %d\n", err); - return err; + "dpsw_vlan_remove_if_untagged err %d\n", + err); } - port_priv->vlans[vid] |=3D ETHSW_VLAN_UNTAGGED; + port_priv->vlans[vid] &=3D ~ETHSW_VLAN_UNTAGGED; } =20 if (flags & BRIDGE_VLAN_INFO_PVID) { err =3D dpaa2_switch_port_set_pvid(port_priv, vid); if (err) return err; + } else if (changed && port_priv->vlans[vid] & ETHSW_VLAN_PVID) { + err =3D dpaa2_switch_port_set_pvid(port_priv, 4095); + if (err) + return err; } =20 return 0; @@ -970,6 +989,7 @@ static int dpaa2_switch_port_vlan_add(struct net_device= *netdev, __be16 proto, .obj.orig_dev =3D netdev, /* This API only allows programming tagged, non-PVID VIDs */ .flags =3D 0, + .changed =3D false, }; =20 return dpaa2_switch_port_vlans_add(netdev, &vlan); @@ -1803,25 +1823,19 @@ int dpaa2_switch_port_vlans_add(struct net_device *= netdev, struct dpsw_attr *attr =3D ðsw->sw_attr; int err =3D 0; =20 - /* Make sure that the VLAN is not already configured - * on the switch port - */ - if (port_priv->vlans[vlan->vid] & ETHSW_VLAN_MEMBER) { - netdev_err(netdev, "VLAN %d already configured\n", vlan->vid); - return -EEXIST; - } - - /* Check if there is space for a new VLAN */ - err =3D dpsw_get_attributes(ethsw->mc_io, 0, ethsw->dpsw_handle, - ðsw->sw_attr); - if (err) { - netdev_err(netdev, "dpsw_get_attributes err %d\n", err); - return err; - } - if (attr->max_vlans - attr->num_vlans < 1) - return -ENOSPC; - if (!port_priv->ethsw_data->vlans[vlan->vid]) { + /* Only check for space in case this is a new VLAN from the + * DPSW perspective + */ + err =3D dpsw_get_attributes(ethsw->mc_io, 0, ethsw->dpsw_handle, + ðsw->sw_attr); + if (err) { + netdev_err(netdev, "dpsw_get_attributes err %d\n", err); + return err; + } + if (attr->max_vlans - attr->num_vlans < 1) + return -ENOSPC; + /* this is a new VLAN */ err =3D dpaa2_switch_add_vlan(port_priv, vlan->vid); if (err) @@ -1830,7 +1844,8 @@ int dpaa2_switch_port_vlans_add(struct net_device *ne= tdev, port_priv->ethsw_data->vlans[vlan->vid] |=3D ETHSW_VLAN_GLOBAL; } =20 - return dpaa2_switch_port_add_vlan(port_priv, vlan->vid, vlan->flags); + return dpaa2_switch_port_add_vlan(port_priv, vlan->vid, vlan->flags, + vlan->changed); } =20 static int dpaa2_switch_port_lookup_address(struct net_device *netdev, int= is_uc, @@ -2146,7 +2161,8 @@ static int dpaa2_switch_port_bridge_leave(struct net_= device *netdev) * the dpaa2 switch interfaces are not capable to be VLAN unaware */ return dpaa2_switch_port_add_vlan(port_priv, DEFAULT_VLAN_ID, - BRIDGE_VLAN_INFO_UNTAGGED | BRIDGE_VLAN_INFO_PVID); + BRIDGE_VLAN_INFO_UNTAGGED | BRIDGE_VLAN_INFO_PVID, + false); } =20 static int dpaa2_switch_prevent_bridging_with_8021q_upper(struct net_devic= e *netdev) --=20 2.25.1 From nobody Mon Jun 8 14:37:43 2026 Received: from AS8PR04CU009.outbound.protection.outlook.com (mail-westeuropeazon11011063.outbound.protection.outlook.com [52.101.70.63]) (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 D7F0F410D34; Thu, 28 May 2026 17:35:18 +0000 (UTC) Authentication-Results: smtp.subspace.kernel.org; arc=fail smtp.client-ip=52.101.70.63 ARC-Seal: i=2; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1779989720; cv=fail; b=AFoOnHJoTuADBnjxZCRE98mkM+xgYZKMAR+RQokk2xuYEpnJBTgLZdrHjJfSwhsUBbB1wEr9lFACj7ppBWixfXEA+cj+d2bE1S9AOYkf1W3rdGDHXctA9o1E8Q/mE6vv8JLgpSInMWG9lh5Hy6VCaZpWKv3PpR5LNq8S71yOzMo= ARC-Message-Signature: i=2; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1779989720; c=relaxed/simple; bh=vOfE3dhYvUIrJy0ruPlt8AIE3paJ6daT5JD1fICQZjM=; h=From:To:Cc:Subject:Date:Message-Id:In-Reply-To:References: Content-Type:MIME-Version; b=ObDWl4JAFCe+ldve1eUzMX60FslFY4UCxl9UQF6CJjnE6aiM1q+haLLIVMEY3G0NFYOuYO9F1Kb8DrKA8iMkaSCyq3OWaZXJiMgxWCHCHV/7QSrBT12UbAjDw5SOMyM0cQKv6z+wDEwREgPadMV9t64nn055WzU6lOlnlD10ZTM= ARC-Authentication-Results: i=2; smtp.subspace.kernel.org; dmarc=pass (p=none dis=none) header.from=nxp.com; spf=pass smtp.mailfrom=nxp.com; dkim=pass (2048-bit key) header.d=nxp.com header.i=@nxp.com header.b=fcQqCQ9t; arc=fail smtp.client-ip=52.101.70.63 Authentication-Results: smtp.subspace.kernel.org; dmarc=pass (p=none dis=none) header.from=nxp.com Authentication-Results: smtp.subspace.kernel.org; spf=pass smtp.mailfrom=nxp.com Authentication-Results: smtp.subspace.kernel.org; dkim=pass (2048-bit key) header.d=nxp.com header.i=@nxp.com header.b="fcQqCQ9t" ARC-Seal: i=1; a=rsa-sha256; s=arcselector10001; d=microsoft.com; cv=none; b=XRXLGISIBPW/NmNDPcCI9M6NWY29NRMlwbr5t3is+2KiWQgoGzVmCJ+NUb5x2xGwmHYrw0lBl7uE1OuTIC3Y9uRqd58VOuLTuSJ+zY6c5BtZX76P9qhZpA6OaTs1C5HZyd0MYvUU3uyMCuL7D2SmmUF8Z1UM0C5RYHoX6eNBJRgNdN8HbyjOoJCjpUuwh383jTwJCf4nNYdjC9PR6BZLdMre/HE11WnIv9UwVSJ8vRhTsSIn98/TSRYvJqnll/gkstgViwnkavfzWy0gvqR1TOZ9Isrc87u0l0IcGXSoyYdqRLnNm+jVSPo9I/DgUKTTVFpjMyCyiwPX05OHY1OpcQ== ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=microsoft.com; s=arcselector10001; h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-AntiSpam-MessageData-ChunkCount:X-MS-Exchange-AntiSpam-MessageData-0:X-MS-Exchange-AntiSpam-MessageData-1; bh=fA5qvFL9p4KatHGLd99IBZFj7AkseWOL5kTSC3n4ZgE=; b=a1JrJWVohVkX5bKcRtOO2EpCHCxtDIYj0Silklp4kO0NUUN+xvQIfokdn6+5iCHvrNJiZ/VgvMQ4zY86DDEG8B/u8MiMXiviYUhhOrGky0ljF2rwF+W8VH/llhn2W40i0IBiFHfQdwW5qgXiiAaMPXAZQ+G24Uo2LGWc0WHmSljkadhmwX6UUulj867+vfZm1cleoRGjbE2NYHyqw2OBVRVbmpolwB19hR/j9EQ09th8c7PXJV3WO/V64IuN7mLLKBseYDHOpbqSoi25QQbZIli/A1LEkFZUbP17zkATcWPNgEC9aBz+5a4Wy7p+soXT1F1vivBZcoxpM9IMHuJmag== ARC-Authentication-Results: i=1; mx.microsoft.com 1; spf=pass smtp.mailfrom=nxp.com; dmarc=pass action=none header.from=nxp.com; dkim=pass header.d=nxp.com; arc=none DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=nxp.com; s=selector1; h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-SenderADCheck; bh=fA5qvFL9p4KatHGLd99IBZFj7AkseWOL5kTSC3n4ZgE=; b=fcQqCQ9tGlzSoc9o0YNvxiLrrchAnZDixnM9ATxB7CjR4bSIEuS4RDIfHmWklOrhcpLUvyMiafR+e/r+1yRn5T3boaaS6cIMqcG1wvnUn0wo83ySGWuSv7r9mJQTQgTZQZli29R8C12RTOZA2J12u97Ql7cv29nC8fmiLHatqY5R3yOwM1Nyu40KZ9aE5fajsgUk2xLrmilUU3iVP6m6RINZAPvwswfnOn3ZJQz7zcVoUZtWm7dCUuVpK2s299SLOxc2sk+IymHHjR436TiaqVnElSx66oroj5F+lXzxiYmtZWZShqnT6l/jeG71FGGgH2XOSskSK4Chfs37OQybGA== Authentication-Results: dkim=none (message not signed) header.d=none;dmarc=none action=none header.from=nxp.com; Received: from GVXPR04MB12290.eurprd04.prod.outlook.com (2603:10a6:150:319::13) by DU0PR04MB9657.eurprd04.prod.outlook.com (2603:10a6:10:31c::22) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.21.71.13; Thu, 28 May 2026 17:35:13 +0000 Received: from GVXPR04MB12290.eurprd04.prod.outlook.com ([fe80::1739:3404:2175:33dd]) by GVXPR04MB12290.eurprd04.prod.outlook.com ([fe80::1739:3404:2175:33dd%6]) with mapi id 15.21.0071.011; Thu, 28 May 2026 17:35:13 +0000 From: Ioana Ciornei To: andrew+netdev@lunn.ch, davem@davemloft.net, edumazet@google.com, kuba@kernel.org, pabeni@redhat.com, netdev@vger.kernel.org Cc: linux-kernel@vger.kernel.org Subject: [PATCH net-next 5/5] dpaa2-switch: fix handling of NAPI on the remove path Date: Thu, 28 May 2026 20:34:52 +0300 Message-Id: <20260528173452.1953102-6-ioana.ciornei@nxp.com> X-Mailer: git-send-email 2.34.1 In-Reply-To: <20260528173452.1953102-1-ioana.ciornei@nxp.com> References: <20260528173452.1953102-1-ioana.ciornei@nxp.com> Content-Transfer-Encoding: quoted-printable X-ClientProxiedBy: FR4P281CA0182.DEUP281.PROD.OUTLOOK.COM (2603:10a6:d10:ca::12) To GVXPR04MB12290.eurprd04.prod.outlook.com (2603:10a6:150:319::13) Precedence: bulk X-Mailing-List: linux-kernel@vger.kernel.org List-Id: List-Subscribe: List-Unsubscribe: MIME-Version: 1.0 X-MS-PublicTrafficType: Email X-MS-TrafficTypeDiagnostic: GVXPR04MB12290:EE_|DU0PR04MB9657:EE_ X-MS-Office365-Filtering-Correlation-Id: d7a9291f-8fd1-4ff3-4f20-08debcdf798a X-MS-Exchange-SenderADCheck: 1 X-MS-Exchange-AntiSpam-Relay: 0 X-Microsoft-Antispam: BCL:0;ARA:13230040|19092799006|1800799024|366016|376014|11063799006|56012099006|22082099003|18002099003; X-Microsoft-Antispam-Message-Info: kXaJM1vt+UC23AjeW96WkJkofndFGtjzME59a1yBAzsjLhrgo17b5DjC33mSfkHrKu5xo+6TJ66Mhs68l2AcIo8K79qK4fKv9Y2ME/B3HDv6+jHM69bUlcP13tj4iUUa68Ewts1c7WdDH/pcmTufI7K0jNt55eG/6KdVR0lAYB0jxHWcpDQhFdUewaXwrR/rRiLHnlZ+ludLNN5LbFcHYpsbvZvP/TvngLROzrLFenDrbOGRKDok01uGFLOoB8/mOUgzScmjZX367k8iqsTse8ptJ1MLCfvoeAvPHN30epbZdlnGAL9/F1W8hjVF4YWj+mzzUK3qqIvpu8NvqErrQQ40cSD/S4Vl73UqO1AJasdBMJFPH1U9fy955+2iHlYqTq31aT/Q7hzzXuzIagnsg28JG1OYDub+q1Jk66Va5WQHwiHNqiYl8MI5DjKhzyFwJ+cuAkSWgZAlMuqjU+esoG3xrkaM4oBjx6RMIGJnjUEwm+6oaVXTsfaIchmN0hwntFCH6Sc+siZ1GMxb5zlEPuYD40If17YIjXT32b93RlIBD12XhDJDCSinFCCgbhE205UIvkPhFtZmeKYi5P8taERp9OoclfSuCS3Vgw4AEk1/zKJ21lec53b+Lm1EQmBGlizMNiRHnlQn7SGeGeOVaxETnrxKIuuq1Or8wCFA1m3lMRzlBgE6m4CqMpEdBztg X-Forefront-Antispam-Report: CIP:255.255.255.255;CTRY:;LANG:en;SCL:1;SRV:;IPV:NLI;SFV:NSPM;H:GVXPR04MB12290.eurprd04.prod.outlook.com;PTR:;CAT:NONE;SFS:(13230040)(19092799006)(1800799024)(366016)(376014)(11063799006)(56012099006)(22082099003)(18002099003);DIR:OUT;SFP:1101; X-MS-Exchange-AntiSpam-MessageData-ChunkCount: 1 X-MS-Exchange-AntiSpam-MessageData-0: =?us-ascii?Q?3yJ2koxmTjXPgZ1E9fiLKuJlL00YKkACJRnbFOlj9hzs+NMQwgWzTUefrw3q?= =?us-ascii?Q?DLU/kgoSEuMYm5m5C/UWZ/w3uOqNUZD62vgBc3iW2WPdsds4FZXbpuK50Qjo?= =?us-ascii?Q?xqJrYsy2MyGsteqpbZOf42/OLiK5RF3bcXD++xT2jxqVFsYRuZYyv6VVkHN0?= =?us-ascii?Q?/MJG0hYgTCc4HPtRYno32Tn5nzhqEfsua33a6VabJ2bWFI+fMU+9L1teS6Fu?= =?us-ascii?Q?0Z//TUfUzfKZpIy1iMAKuhqhMdSYrTViTNETk8RxmrmaJYZnsXo5SAIBBy0L?= =?us-ascii?Q?XjZ759Zcvg8BukKQ62sF3SWCUFbTm2K1NE2ZVQlGWYQiG4wf+Ao73kuNCTOF?= =?us-ascii?Q?nIaVijKa0vGt4vq1XNC2vT+EuymgfCo8WbwxRLbBbGGQDQHN1rgER4lWnRmT?= =?us-ascii?Q?bdNwnyP6uwrgb+nbv7GIAK4U+Al5g0PwBmYEvjDa3S6MvkVc/XshmUx0isAx?= =?us-ascii?Q?CMVMYTU/qQpLXvrRnugQxybQWiWN7fI/pjIue4e25iPOJRRewzv4OiXa1JC5?= =?us-ascii?Q?oR4Lvj7zKGDE3WTi/N/CZblLD9twhbi3ccXnuKTxQBCiS+VzInpwwtTEg7qG?= =?us-ascii?Q?+6rqPA+S8vj8fxEsEQjAdhocJ6j7KjOxtJF86109Ok+gH+TBG7voVffK0kle?= =?us-ascii?Q?jVgZ+8CHdUlFWHkLllg6XKdMJEUnhaiBvj0RiJ4qL9fQ0HIvccqrMbItpLXf?= =?us-ascii?Q?G5ipOVpPdep/d/Y505lE+gdd8WjyMmxr8TcSgpb6mUXLCPkJzQ0WORE2+j6v?= =?us-ascii?Q?ZqagJSB9Ni3gAjf7ngeReZV7hDSXISsntcY7ISFXQ00wYSMGcEOlEz3BIwXP?= =?us-ascii?Q?6+vZt/pMixO2s1hwkCIE3ow2OdeXaTNAKGaQ12Cqm27X7EjvVHYBFIxlcHRG?= =?us-ascii?Q?XPp9wZDWGYfGPo9jc+LLimCh4LdVo9WTpfrMcCJwgsnIIo8AAkqVs2rBA60q?= =?us-ascii?Q?ijchebgPWCbIbnWwGQ8MLQlemeOvOqbB8ziuutBcCWz6k8CwN3K+p3x422tV?= =?us-ascii?Q?SdftOVvfBDy+6W7rXfqelZvPcPNK2idldpaHY0pkCNTPFP95RzfYKblEilc8?= =?us-ascii?Q?AiB7Q6f+D9EU5HfhNKCq1ZrdewyPmMT5AAlPwJSlZV54DsPMnrcSC1HYuBRW?= =?us-ascii?Q?kNkmrnCA87mdQXHVwszzp7370oSxMqE+gRxwuREXN5PQzbfv92RftSUMv5Qs?= =?us-ascii?Q?+Z0BGY2sYup0Hv/Y5vFlsHEZ6MT4Z1XVRdhdJTNVRFuFT6x1XiUl4rC6/snc?= =?us-ascii?Q?5qTPjIH8ZFfo8PezdVQQJoNGOg5pwW25z+nA4MNtp9BkbDtvRxqkHXqNU7XW?= =?us-ascii?Q?X0oeOV8q05dyuFwa1u00idaSSmYRqUfqdOr8vDL95DbXMH+IVKLt8ofdgEPF?= =?us-ascii?Q?4guSLpChQAzmc/SDVnFcCNT9MKhdeOge2ZC0JA+7a/wneStiHZPUqUr18HU9?= =?us-ascii?Q?aHUW7DB3eQDeSqz/Nuw69YMqZSBf1465K3a8d1y/fPJk8yQCQbYCvqyhyrkD?= =?us-ascii?Q?LtYKe534ua2gFVyzRK8tX7YBOKyNcNByV2Qj9Wxm0VLFOm0NSOoKzmUArWGA?= =?us-ascii?Q?cu+KOvAxyHomX0OeNHYUHNHMLeY2VanMSau7EU97X6KQGX/RpElHHIk12w/6?= =?us-ascii?Q?/d/zirP5nz2F1b/p0JYvDzsHQ+tujEwFY72zbZ9+tj3HcsYZAqeedZtpfMbd?= =?us-ascii?Q?XlDo6CqnWYJ6Fxp/GChj5M8snPUBDF0KGdBfPiUbglL9jI+j1WWjPGMDrzqb?= =?us-ascii?Q?KGHYoPo0cA=3D=3D?= X-OriginatorOrg: nxp.com X-MS-Exchange-CrossTenant-Network-Message-Id: d7a9291f-8fd1-4ff3-4f20-08debcdf798a X-MS-Exchange-CrossTenant-AuthSource: GVXPR04MB12290.eurprd04.prod.outlook.com X-MS-Exchange-CrossTenant-AuthAs: Internal X-MS-Exchange-CrossTenant-OriginalArrivalTime: 28 May 2026 17:35:13.6672 (UTC) X-MS-Exchange-CrossTenant-FromEntityHeader: Hosted X-MS-Exchange-CrossTenant-Id: 686ea1d3-bc2b-4c6f-a92c-d99c5c301635 X-MS-Exchange-CrossTenant-MailboxType: HOSTED X-MS-Exchange-CrossTenant-UserPrincipalName: XKsaRXxxMNgm912mznKO7lElm7CrmNtRrjLCAWQubc0Ngwi7poLhuzKogTFLlpH/mnyGNzlYuxbuAy0ub0/bdw== X-MS-Exchange-Transport-CrossTenantHeadersStamped: DU0PR04MB9657 Content-Type: text/plain; charset="utf-8" All the NAPI instances for a DPSW device are attached to the first switch port's net_device but shared by all ports. The NAPI instances get disabled only once the last port goes down. This causes an issue on the .remove() path where each port is unregistered and freed one at a time, causing the NAPI instances to be deleted even though they are not disabled. In order to avoid this, split up the unregister_netdev() calls from the free_netdev() so that we make sure all ports go down before we attempt a deletion of NAPI instances. Also, make the netif_napi_del() explicit as it is on the .probe() path. Signed-off-by: Ioana Ciornei --- .../net/ethernet/freescale/dpaa2/dpaa2-switch.c | 15 ++++++++++----- 1 file changed, 10 insertions(+), 5 deletions(-) diff --git a/drivers/net/ethernet/freescale/dpaa2/dpaa2-switch.c b/drivers/= net/ethernet/freescale/dpaa2/dpaa2-switch.c index 505ccaa93ee4..a0bf5b50aae5 100644 --- a/drivers/net/ethernet/freescale/dpaa2/dpaa2-switch.c +++ b/drivers/net/ethernet/freescale/dpaa2/dpaa2-switch.c @@ -3304,7 +3304,6 @@ static void dpaa2_switch_teardown(struct fsl_mc_devic= e *sw_dev) =20 static void dpaa2_switch_remove(struct fsl_mc_device *sw_dev) { - struct ethsw_port_priv *port_priv; struct ethsw_core *ethsw; struct device *dev; int i; @@ -3316,11 +3315,17 @@ static void dpaa2_switch_remove(struct fsl_mc_devic= e *sw_dev) =20 dpsw_disable(ethsw->mc_io, 0, ethsw->dpsw_handle); =20 - for (i =3D 0; i < ethsw->sw_attr.num_ifs; i++) { - port_priv =3D ethsw->ports[i]; - unregister_netdev(port_priv->netdev); + /* Unregister all the netdevs so that they are brought down and the + * shared NAPI instances gets disabled. + */ + for (i =3D 0; i < ethsw->sw_attr.num_ifs; i++) + unregister_netdev(ethsw->ports[i]->netdev); + + for (i =3D 0; i < DPAA2_SWITCH_RX_NUM_FQS; i++) + netif_napi_del(ðsw->fq[i].napi); + + for (i =3D 0; i < ethsw->sw_attr.num_ifs; i++) dpaa2_switch_remove_port(ethsw, i); - } =20 kfree(ethsw->fdbs); kfree(ethsw->filter_blocks); --=20 2.25.1