summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorRasmus Villemoes <linux@rasmusvillemoes.dk>2022-11-16 11:52:02 +0100
committerJakub Kicinski <kuba@kernel.org>2022-11-17 19:40:07 -0800
commit0171a1d22bb99174671484f409f66f5b96c073b4 (patch)
treee3778bf7d3adb45833c0eedc3a4e57d7fca8f07c
parentf20a0a0519f35a3a34236ed2d38b067c5cb22b9f (diff)
downloadlwn-0171a1d22bb99174671484f409f66f5b96c073b4.tar.gz
lwn-0171a1d22bb99174671484f409f66f5b96c073b4.zip
net: dsa: refactor name assignment for user ports
The following two patches each have a (small) chance of causing regressions for userspace and will in that case of course need to be reverted. In order to prepare for that and make those two patches independent and individually revertable, refactor the code which sets the names for user ports by moving the "fall back to eth%d if no label is given in device tree" to dsa_slave_create(). No functional change (at least none intended). Signed-off-by: Rasmus Villemoes <linux@rasmusvillemoes.dk> Reviewed-by: Andrew Lunn <andrew@lunn.ch> Reviewed-by: Florian Fainelli <f.faineli@gmail.com> Signed-off-by: Jakub Kicinski <kuba@kernel.org>
-rw-r--r--net/dsa/dsa2.c3
-rw-r--r--net/dsa/slave.c13
2 files changed, 11 insertions, 5 deletions
diff --git a/net/dsa/dsa2.c b/net/dsa/dsa2.c
index 12145c852902..d3055b49080f 100644
--- a/net/dsa/dsa2.c
+++ b/net/dsa/dsa2.c
@@ -1365,9 +1365,6 @@ static struct dsa_port *dsa_port_touch(struct dsa_switch *ds, int index)
static int dsa_port_parse_user(struct dsa_port *dp, const char *name)
{
- if (!name)
- name = "eth%d";
-
dp->type = DSA_PORT_TYPE_USER;
dp->name = name;
diff --git a/net/dsa/slave.c b/net/dsa/slave.c
index 4176482cd03f..2ae75d4d8389 100644
--- a/net/dsa/slave.c
+++ b/net/dsa/slave.c
@@ -2366,16 +2366,25 @@ int dsa_slave_create(struct dsa_port *port)
{
struct net_device *master = dsa_port_to_master(port);
struct dsa_switch *ds = port->ds;
- const char *name = port->name;
struct net_device *slave_dev;
struct dsa_slave_priv *p;
+ const char *name;
+ int assign_type;
int ret;
if (!ds->num_tx_queues)
ds->num_tx_queues = 1;
+ if (port->name) {
+ name = port->name;
+ assign_type = NET_NAME_UNKNOWN;
+ } else {
+ name = "eth%d";
+ assign_type = NET_NAME_UNKNOWN;
+ }
+
slave_dev = alloc_netdev_mqs(sizeof(struct dsa_slave_priv), name,
- NET_NAME_UNKNOWN, ether_setup,
+ assign_type, ether_setup,
ds->num_tx_queues, 1);
if (slave_dev == NULL)
return -ENOMEM;