Groups | Search | Server Info | Keyboard shortcuts | Login | Register [http] [https] [nntp] [nntps]
Groups > linux.kernel > #1261670 > unrolled thread
| Started by | Vivien Didelot <vivien.didelot@savoirfairelinux.com> |
|---|---|
| First post | 2015-11-03 17:10 +0100 |
| Last post | 2015-11-03 17:40 +0100 |
| Articles | 2 — 2 participants |
Back to article view | Back to linux.kernel
[PATCH net] net: dsa: mv88e6xxx: disable SA learning for DSA and CPU ports Vivien Didelot <vivien.didelot@savoirfairelinux.com> - 2015-11-03 17:10 +0100
Re: [PATCH net] net: dsa: mv88e6xxx: disable SA learning for DSA and CPU ports David Miller <davem@davemloft.net> - 2015-11-03 17:40 +0100
| From | Vivien Didelot <vivien.didelot@savoirfairelinux.com> |
|---|---|
| Date | 2015-11-03 17:10 +0100 |
| Subject | [PATCH net] net: dsa: mv88e6xxx: disable SA learning for DSA and CPU ports |
| Message-ID | <qqMjN-53W-25@gated-at.bofh.it> |
From: Andrew Lunn <andrew@lunn.ch> Frames with DSA headers passing to/from the CPU were taking place in the MAC learning on these ports, resulting in incorrect ATU entries. Disable learning on these ports. Signed-off-by: Andrew Lunn <andrew@lunn.ch> Signed-off-by: Vivien Didelot <vivien.didelot@savoirfairelinux.com> --- drivers/net/dsa/mv88e6xxx.c | 8 ++++++-- drivers/net/dsa/mv88e6xxx.h | 5 +++++ 2 files changed, 11 insertions(+), 2 deletions(-) diff --git a/drivers/net/dsa/mv88e6xxx.c b/drivers/net/dsa/mv88e6xxx.c index 1f7dd92..3bec315 100644 --- a/drivers/net/dsa/mv88e6xxx.c +++ b/drivers/net/dsa/mv88e6xxx.c @@ -2123,8 +2123,12 @@ static int mv88e6xxx_setup_port(struct dsa_switch *ds, int port) * a port bitmap that has only the bit for this port set and * the other bits clear. */ - ret = _mv88e6xxx_reg_write(ds, REG_PORT(port), PORT_ASSOC_VECTOR, - 1 << port); + reg = 1 << port; + /* Disable learning for DSA and CPU ports */ + if (dsa_is_cpu_port(ds, port) || dsa_is_dsa_port(ds, port)) + reg = PORT_ASSOC_VECTOR_LOCKED_PORT; + + ret = _mv88e6xxx_reg_write(ds, REG_PORT(port), PORT_ASSOC_VECTOR, reg); if (ret) goto abort; diff --git a/drivers/net/dsa/mv88e6xxx.h b/drivers/net/dsa/mv88e6xxx.h index 9b6f3d9..ade5d9e5 100644 --- a/drivers/net/dsa/mv88e6xxx.h +++ b/drivers/net/dsa/mv88e6xxx.h @@ -157,6 +157,11 @@ #define PORT_RATE_CONTROL 0x09 #define PORT_RATE_CONTROL_2 0x0a #define PORT_ASSOC_VECTOR 0x0b +#define PORT_ASSOC_VECTOR_HOLD_AT_1 BIT(15) +#define PORT_ASSOC_VECTOR_INT_AGE_OUT BIT(14) +#define PORT_ASSOC_VECTOR_LOCKED_PORT BIT(13) +#define PORT_ASSOC_VECTOR_IGNORE_WRONG BIT(12) +#define PORT_ASSOC_VECTOR_REFRESH_LOCKED BIT(11) #define PORT_ATU_CONTROL 0x0c #define PORT_PRI_OVERRIDE 0x0d #define PORT_ETH_TYPE 0x0f -- 2.6.2 -- To unsubscribe from this list: send the line "unsubscribe linux-kernel" in the body of a message to majordomo@vger.kernel.org More majordomo info at http://vger.kernel.org/majordomo-info.html Please read the FAQ at http://www.tux.org/lkml/
[toc] | [next] | [standalone]
| From | David Miller <davem@davemloft.net> |
|---|---|
| Date | 2015-11-03 17:40 +0100 |
| Subject | Re: [PATCH net] net: dsa: mv88e6xxx: disable SA learning for DSA and CPU ports |
| Message-ID | <qqMMO-5fY-1@gated-at.bofh.it> |
| In reply to | #1261670 |
From: Vivien Didelot <vivien.didelot@savoirfairelinux.com> Date: Tue, 3 Nov 2015 10:52:36 -0500 > From: Andrew Lunn <andrew@lunn.ch> > > Frames with DSA headers passing to/from the CPU were taking place in the > MAC learning on these ports, resulting in incorrect ATU entries. Disable > learning on these ports. > > Signed-off-by: Andrew Lunn <andrew@lunn.ch> > Signed-off-by: Vivien Didelot <vivien.didelot@savoirfairelinux.com> Applied. -- To unsubscribe from this list: send the line "unsubscribe linux-kernel" in the body of a message to majordomo@vger.kernel.org More majordomo info at http://vger.kernel.org/majordomo-info.html Please read the FAQ at http://www.tux.org/lkml/
[toc] | [prev] | [standalone]
Back to top | Article view | linux.kernel
csiph-web