summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorVivien Didelot <vivien.didelot@savoirfairelinux.com>2017-10-27 15:55:18 -0400
committerDavid S. Miller <davem@davemloft.net>2017-11-01 11:47:36 +0900
commit1838fa89a22cbc9ec87e995683e241a82d87e6df (patch)
tree34be73f20faedfd7c979548b5336cfcb4d61cd56
parentcbabb0ac01052f79cf96d7b7e3d3451ffd275864 (diff)
net: dsa: get port name at parse time
Get the optional "label" property and assign a default one directly at parse time instead of doing it when creating the slave. For legacy, simply assign the port name stored in cd->port_names. Signed-off-by: Vivien Didelot <vivien.didelot@savoirfairelinux.com> Reviewed-by: Florian Fainelli <f.fainelli@gmail.com> Signed-off-by: David S. Miller <davem@davemloft.net>
-rw-r--r--net/dsa/dsa2.c10
-rw-r--r--net/dsa/legacy.c1
2 files changed, 6 insertions, 5 deletions
diff --git a/net/dsa/dsa2.c b/net/dsa/dsa2.c
index 8cd84c1b3dc0..3c134ff26863 100644
--- a/net/dsa/dsa2.c
+++ b/net/dsa/dsa2.c
@@ -260,11 +260,6 @@ static int dsa_user_port_apply(struct dsa_port *port)
const char *name = port->name;
int err;
- if (port->dn)
- name = of_get_property(port->dn, "label", NULL);
- if (!name)
- name = "eth%d";
-
err = dsa_slave_create(port, name);
if (err) {
dev_warn(ds->dev, "Failed to create slave %d: %d\n",
@@ -564,6 +559,7 @@ static int dsa_port_parse_of(struct dsa_port *dp, struct device_node *dn)
{
struct device_node *ethernet = of_parse_phandle(dn, "ethernet", 0);
struct device_node *link = of_parse_phandle(dn, "link", 0);
+ const char *name = of_get_property(dn, "label", NULL);
if (ethernet) {
struct net_device *master;
@@ -577,7 +573,11 @@ static int dsa_port_parse_of(struct dsa_port *dp, struct device_node *dn)
} else if (link) {
dp->type = DSA_PORT_TYPE_DSA;
} else {
+ if (!name)
+ name = "eth%d";
+
dp->type = DSA_PORT_TYPE_USER;
+ dp->name = name;
}
dp->dn = dn;
diff --git a/net/dsa/legacy.c b/net/dsa/legacy.c
index ed7aae342fca..afe6e1539bd0 100644
--- a/net/dsa/legacy.c
+++ b/net/dsa/legacy.c
@@ -115,6 +115,7 @@ static int dsa_switch_setup_one(struct dsa_switch *ds,
name = cd->port_names[i];
if (name == NULL)
continue;
+ dp->name = name;
if (!strcmp(name, "cpu")) {
if (dst->cpu_dp) {