Skip to contentSkip to conversation

FAILED: patch "[PATCH] net: dsa: mv88e6xxx: Add tx fwd offload PVT on intermediate" failed to apply to 5.15-stable tree

PATCH [email protected] 1 participant 1 message Jan 24, 2022

Subsystems (4)
lore
Share & tools
lore

[email protected]

author maintainer
#0 lore raw

The patch below does not apply to the 5.15-stable tree.
If someone wants it applied there, or to any other stable or longterm tree, then please email the backport, including the original git commit id to <[email protected]>.

thanks,

greg k-h

------------------ original commit in Linus's tree ------------------

From e0068620e5e1779b3d5bb5649cd196e1cbf277a9 Mon Sep 17 00:00:00 2001
From: Tobias Waldekranz <[email protected]>
Date: Thu, 9 Dec 2021 23:24:24 +0100
Subject: [PATCH] net: dsa: mv88e6xxx: Add tx fwd offload PVT on intermediate
devices

In a typical mv88e6xxx switch tree like this:

CPU

   |    .----.
.--0--. | .--0--.
| sw0 | | | sw1 |
'-1-2-' | '-1-2-'
    '---'

If sw1p{1,2} are added to a bridge that sw0p1 is not a part of, sw0 still needs to add a crosschip PVT entry for the virtual DSA device assigned to represent the bridge.

Fixes ce5df6894a57 ("net: dsa: mv88e6xxx: map virtual bridges with forwarding offload in the PVT")
drivers/net/dsa/mv88e6xxx/chip.c +3 -1
index 45aaa7333fb8..dced1505e6bf 100644
@@ -2531,6 +2531,7 @@ static int mv88e6xxx_crosschip_bridge_join(struct dsa_switch *ds,
 
 	mv88e6xxx_reg_lock(chip);
 	err = mv88e6xxx_pvt_map(chip, sw_index, port);
+	err = err ? : mv88e6xxx_map_virtual_bridge_to_pvt(ds, bridge.num);
 	mv88e6xxx_reg_unlock(chip);
 
 	return err;
@@ -2546,7 +2547,8 @@ static void mv88e6xxx_crosschip_bridge_leave(struct dsa_switch *ds,
 		return;
 
 	mv88e6xxx_reg_lock(chip);
-	if (mv88e6xxx_pvt_map(chip, sw_index, port))
+	if (mv88e6xxx_pvt_map(chip, sw_index, port) ||
+	    mv88e6xxx_map_virtual_bridge_to_pvt(ds, bridge.num))
 		dev_err(ds->dev, "failed to remap cross-chip Port VLAN\n");
 	mv88e6xxx_reg_unlock(chip);
 }