aboutsummaryrefslogtreecommitdiffstats
path: root/net/dsa/dsa2.c
diff options
context:
space:
mode:
authorVivien Didelot <vivien.didelot@gmail.com>2019-10-21 16:51:20 -0400
committerJakub Kicinski <jakub.kicinski@netronome.com>2019-10-22 12:37:06 -0700
commit86bfb2c1f4337d3306d235f615d35ba8bbbe4650 (patch)
tree2913abd416d35f4646fe516e70dfda7f3e82d307 /net/dsa/dsa2.c
parentnet: dsa: use ports list to setup switches (diff)
downloadlinux-dev-86bfb2c1f4337d3306d235f615d35ba8bbbe4650.tar.xz
linux-dev-86bfb2c1f4337d3306d235f615d35ba8bbbe4650.zip
net: dsa: use ports list for routing table setup
Use the new ports list instead of accessing the dsa_switch array of ports when iterating over DSA ports of a switch to set up the routing table. Signed-off-by: Vivien Didelot <vivien.didelot@gmail.com> Reviewed-by: Florian Fainelli <f.fainelli@gmail.com> Reviewed-by: Andrew Lunn <andrew@lunn.ch> Signed-off-by: Jakub Kicinski <jakub.kicinski@netronome.com>
Diffstat (limited to 'net/dsa/dsa2.c')
-rw-r--r--net/dsa/dsa2.c7
1 files changed, 3 insertions, 4 deletions
diff --git a/net/dsa/dsa2.c b/net/dsa/dsa2.c
index 01b6047d9b7b..623805ba8e1a 100644
--- a/net/dsa/dsa2.c
+++ b/net/dsa/dsa2.c
@@ -157,6 +157,7 @@ static bool dsa_port_setup_routing_table(struct dsa_port *dp)
static bool dsa_switch_setup_routing_table(struct dsa_switch *ds)
{
+ struct dsa_switch_tree *dst = ds->dst;
bool complete = true;
struct dsa_port *dp;
int i;
@@ -164,10 +165,8 @@ static bool dsa_switch_setup_routing_table(struct dsa_switch *ds)
for (i = 0; i < DSA_MAX_SWITCHES; i++)
ds->rtable[i] = DSA_RTABLE_NONE;
- for (i = 0; i < ds->num_ports; i++) {
- dp = &ds->ports[i];
-
- if (dsa_port_is_dsa(dp)) {
+ list_for_each_entry(dp, &dst->ports, list) {
+ if (dp->ds == ds && dsa_port_is_dsa(dp)) {
complete = dsa_port_setup_routing_table(dp);
if (!complete)
break;