@@ -6542,7 +6542,7 @@ static void mv88e6xxx_port_mirror_del(struct dsa_switch *ds, int from_port,
/* Reset egress port when no other mirror is active */
if (!other_mirrors) {
if (mv88e6xxx_set_egress_port(chip, direction,
- dsa_upstream_port(ds, from_port)))
+ MV88E6XXX_EGRESS_DEST_DISABLE))
dev_err(ds->dev, "failed to set egress port\n");
}
@@ -589,6 +589,9 @@ struct mv88e6xxx_ops {
const struct mv88e6xxx_hw_stat *stat,
uint64_t *data);
int (*set_cpu_port)(struct mv88e6xxx_chip *chip, int port);
+
+#define MV88E6XXX_EGRESS_DEST_DISABLE 0x1f
+
int (*set_egress_port)(struct mv88e6xxx_chip *chip,
enum mv88e6xxx_egress_direction direction,
int port);
According to Switch Functional Specification in order to disable policy mirroring we need to set mirror destination to 0x1F. Signed-off-by: Ante Knezic <ante.knezic@helmholz.de> --- drivers/net/dsa/mv88e6xxx/chip.c | 2 +- drivers/net/dsa/mv88e6xxx/chip.h | 3 +++ 2 files changed, 4 insertions(+), 1 deletion(-)