OSDN Git Service

net: dsa: use ports list to find a port by node
authorVivien Didelot <vivien.didelot@gmail.com>
Mon, 21 Oct 2019 20:51:21 +0000 (16:51 -0400)
committerJakub Kicinski <jakub.kicinski@netronome.com>
Tue, 22 Oct 2019 19:37:07 +0000 (12:37 -0700)
Use the new ports list instead of iterating over switches and their
ports to find a port from a given node.

Signed-off-by: Vivien Didelot <vivien.didelot@gmail.com>
Reviewed-by: Florian Fainelli <f.fainelli@gmail.com>
Signed-off-by: Jakub Kicinski <jakub.kicinski@netronome.com>
net/dsa/dsa2.c

index 623805b..a4de7ff 100644 (file)
@@ -113,22 +113,11 @@ static bool dsa_port_is_user(struct dsa_port *dp)
 static struct dsa_port *dsa_tree_find_port_by_node(struct dsa_switch_tree *dst,
                                                   struct device_node *dn)
 {
-       struct dsa_switch *ds;
        struct dsa_port *dp;
-       int device, port;
-
-       for (device = 0; device < DSA_MAX_SWITCHES; device++) {
-               ds = dst->ds[device];
-               if (!ds)
-                       continue;
 
-               for (port = 0; port < ds->num_ports; port++) {
-                       dp = &ds->ports[port];
-
-                       if (dp->dn == dn)
-                               return dp;
-               }
-       }
+       list_for_each_entry(dp, &dst->ports, list)
+               if (dp->dn == dn)
+                       return dp;
 
        return NULL;
 }