netdev.vger.kernel.org archive mirror
 help / color / mirror / Atom feed
* [PATCH] net: dsa: use NET_NAME_PREDICTABLE for user ports with name given in DT
@ 2022-11-11 16:17 Rasmus Villemoes
  2022-11-11 17:10 ` Andrew Lunn
  2022-11-15  7:43 ` [PATCH v2] net: dsa: use more appropriate NET_NAME_* constants for user ports Rasmus Villemoes
  0 siblings, 2 replies; 20+ messages in thread
From: Rasmus Villemoes @ 2022-11-11 16:17 UTC (permalink / raw)
  To: Andrew Lunn, Vivien Didelot, Florian Fainelli, Vladimir Oltean,
	David S. Miller, Eric Dumazet, Jakub Kicinski, Paolo Abeni
  Cc: Rasmus Villemoes, netdev, linux-kernel

When a user port has a label in device tree, the corresponding
netdevice is "predictably named by the kernel".

Expose that information properly for the benefit of userspace tools
that make decisions based on the name_assign_type attribute,
e.g. a systemd-udev rule with "kernel" in NamePolicy.

Signed-off-by: Rasmus Villemoes <linux@rasmusvillemoes.dk>
---
 net/dsa/dsa2.c  |  3 ---
 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 e504a18fc125..522fc1b6e8c6 100644
--- a/net/dsa/dsa2.c
+++ b/net/dsa/dsa2.c
@@ -1364,9 +1364,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 a9fde48cffd4..dfefcc4a9ccf 100644
--- a/net/dsa/slave.c
+++ b/net/dsa/slave.c
@@ -2374,16 +2374,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_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;
-- 
2.37.2


^ permalink raw reply related	[flat|nested] 20+ messages in thread

end of thread, other threads:[~2022-11-18  4:50 UTC | newest]

Thread overview: 20+ messages (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
2022-11-11 16:17 [PATCH] net: dsa: use NET_NAME_PREDICTABLE for user ports with name given in DT Rasmus Villemoes
2022-11-11 17:10 ` Andrew Lunn
2022-11-13 20:03   ` Rasmus Villemoes
2022-11-15  2:17     ` Jakub Kicinski
2022-11-15 15:02       ` Andrew Lunn
2022-11-15  7:43 ` [PATCH v2] net: dsa: use more appropriate NET_NAME_* constants for user ports Rasmus Villemoes
2022-11-15 16:38   ` Jakub Kicinski
2022-11-15 18:55     ` Rasmus Villemoes
2022-11-16  1:59       ` Jakub Kicinski
2022-11-16 10:52   ` [PATCH v3 0/3] " Rasmus Villemoes
2022-11-16 10:52     ` [PATCH v3 1/3] net: dsa: refactor name assignment " Rasmus Villemoes
2022-11-16 13:40       ` Andrew Lunn
2022-11-16 16:22       ` Florian Fainelli
2022-11-16 10:52     ` [PATCH v3 2/3] net: dsa: use NET_NAME_PREDICTABLE for user ports with name given in DT Rasmus Villemoes
2022-11-16 13:41       ` Andrew Lunn
2022-11-16 16:22       ` Florian Fainelli
2022-11-16 10:52     ` [PATCH v3 3/3] net: dsa: set name_assign_type to NET_NAME_ENUM for enumerated user ports Rasmus Villemoes
2022-11-16 13:42       ` Andrew Lunn
2022-11-16 16:23       ` Florian Fainelli
2022-11-18  4:50     ` [PATCH v3 0/3] net: dsa: use more appropriate NET_NAME_* constants for " patchwork-bot+netdevbpf

This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for NNTP newsgroup(s).