mirror of
https://github.com/openwrt/openwrt.git
synced 2024-12-29 10:08:59 +00:00
bb8fd41f9a
Changelog: https://cdn.kernel.org/pub/linux/kernel/v6.x/ChangeLog-6.1.59 Manually rebased: bcm27xx/patches-6.1/950-0124-Add-support-for-all-the-downstream-rpi-sound-card-dr.patch Removed upstreamed: generic/backport-6.1/781-v6.6-02-net-dsa-qca8k-fix-potential-MDIO-bus-conflict-when-a.patch[1] All other patches automatically rebased. 1. https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git/commit/?h=v6.1.59&id=881050b25b1dda7b0f14d40d1b09bf38cb3b427c Build system: x86/64 Build-tested: x86/64/AMD Cezanne Run-tested: x86/64/AMD Cezanne Signed-off-by: John Audia <therealgraysky@proton.me>
54 lines
2.0 KiB
Diff
54 lines
2.0 KiB
Diff
From 18e8feae4a807994e4906d659116d249bfecd4c5 Mon Sep 17 00:00:00 2001
|
|
From: Christian Marangi <ansuelsmth@gmail.com>
|
|
Date: Sun, 30 Jul 2023 09:41:11 +0200
|
|
Subject: [PATCH 2/4] net: dsa: qca8k: limit user ports access to the first CPU
|
|
port on setup
|
|
|
|
In preparation for multi-CPU support, set CPU port LOOKUP MEMBER outside
|
|
the port loop and setup the LOOKUP MEMBER mask for user ports only to
|
|
the first CPU port.
|
|
|
|
This is to handle flooding condition where every CPU port is set as
|
|
target and prevent packet duplication for unknown frames from user ports.
|
|
|
|
Secondary CPU port LOOKUP MEMBER mask will be setup later when
|
|
port_change_master will be implemented.
|
|
|
|
Signed-off-by: Christian Marangi <ansuelsmth@gmail.com>
|
|
Reviewed-by: Simon Horman <simon.horman@corigine.com>
|
|
Reviewed-by: Florian Fainelli <florian.fainelli@broadcom.com>
|
|
Reviewed-by: Vladimir Oltean <olteanv@gmail.com>
|
|
Link: https://lore.kernel.org/r/20230730074113.21889-3-ansuelsmth@gmail.com
|
|
Signed-off-by: Paolo Abeni <pabeni@redhat.com>
|
|
---
|
|
drivers/net/dsa/qca/qca8k-8xxx.c | 14 ++++++--------
|
|
1 file changed, 6 insertions(+), 8 deletions(-)
|
|
|
|
--- a/drivers/net/dsa/qca/qca8k-8xxx.c
|
|
+++ b/drivers/net/dsa/qca/qca8k-8xxx.c
|
|
@@ -1874,18 +1874,16 @@ qca8k_setup(struct dsa_switch *ds)
|
|
if (ret)
|
|
return ret;
|
|
|
|
+ /* CPU port gets connected to all user ports of the switch */
|
|
+ ret = qca8k_rmw(priv, QCA8K_PORT_LOOKUP_CTRL(cpu_port),
|
|
+ QCA8K_PORT_LOOKUP_MEMBER, dsa_user_ports(ds));
|
|
+ if (ret)
|
|
+ return ret;
|
|
+
|
|
/* Setup connection between CPU port & user ports
|
|
* Configure specific switch configuration for ports
|
|
*/
|
|
for (i = 0; i < QCA8K_NUM_PORTS; i++) {
|
|
- /* CPU port gets connected to all user ports of the switch */
|
|
- if (dsa_is_cpu_port(ds, i)) {
|
|
- ret = qca8k_rmw(priv, QCA8K_PORT_LOOKUP_CTRL(i),
|
|
- QCA8K_PORT_LOOKUP_MEMBER, dsa_user_ports(ds));
|
|
- if (ret)
|
|
- return ret;
|
|
- }
|
|
-
|
|
/* Individual user ports get connected to CPU port only */
|
|
if (dsa_is_user_port(ds, i)) {
|
|
ret = qca8k_rmw(priv, QCA8K_PORT_LOOKUP_CTRL(i),
|