diff options
author | Jakub Kicinski <kuba@kernel.org> | 2022-11-17 19:40:13 -0800 |
---|---|---|
committer | Jakub Kicinski <kuba@kernel.org> | 2022-11-17 19:40:15 -0800 |
commit | 2ffff1449ddd35cad113614fce2424da235f7560 (patch) | |
tree | 8ce8c6fb4230c98dfa7d7e474143c8962d20f779 | |
parent | f20a0a0519f35a3a34236ed2d38b067c5cb22b9f (diff) | |
parent | b8790661d90d7bbfb745df40262d13a0e8ae6400 (diff) |
Merge branch 'net-dsa-use-more-appropriate-net_name_-constants-for-user-ports'
Rasmus Villemoes says:
====================
net: dsa: use more appropriate NET_NAME_* constants for user ports
The intention of commit 685343fc3ba6 ("net: add name_assign_type
netdev attribute") was clearly that drivers be switched over one by
one to select appropriate NET_NAME_* constants instead of
NET_NAME_UNKNOWN. This small series attempts to do that for DSA user
ports.
This is obviously and intentionally user-visible changes, so there's a
small chance that it could lead to a regression. To make it easy to
revert either of the "label in DT" and "fallback to eth%d" changes,
this is done as a refactoring which shouldn't introduce any functional
change (but by itself adds code which looks a little odd, with the two
identical assignments in the two branches), followed by changing the
constant used in each case in two different patches.
====================
Link: https://lore.kernel.org/r/20221116105205.1127843-1-linux@rasmusvillemoes.dk
Signed-off-by: Jakub Kicinski <kuba@kernel.org>
-rw-r--r-- | net/dsa/dsa2.c | 3 | ||||
-rw-r--r-- | net/dsa/slave.c | 13 |
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..24d8ad36fc8b 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_PREDICTABLE; + } else { + name = "eth%d"; + assign_type = NET_NAME_ENUM; + } + 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; |