From: David Miller <davem@xxxxxxxxxxxxx> Sent: Thursday, September 24, 2020 4:32 AM
From: Stefan Riedmueller <s.riedmueller@xxxxxxxxx>
Date: Wed, 23 Sep 2020 16:25:28 +0200
From: Christian Hemp <c.hemp@xxxxxxxxx>
Make use of device tree alias for device enumeration to keep the
device order consistent with the naming in the datasheet.
Otherwise for the i.MX 6UL/ULL the ENET1 interface is enumerated as
eth1 and ENET2 as eth0.
Signed-off-by: Christian Hemp <c.hemp@xxxxxxxxx>
Signed-off-by: Stefan Riedmueller <s.riedmueller@xxxxxxxxx>
Device naming and ordering for networking devices was never, ever,
guaranteed.
Use udev or similar.
@@ -3691,6 +3692,10 @@ fec_probe(struct platform_device *pdev)
ndev->max_mtu = PKT_MAXBUF_SIZE - ETH_HLEN - ETH_FCS_LEN;
+ eth_id = of_alias_get_id(pdev->dev.of_node, "ethernet");
+ if (eth_id >= 0)
+ sprintf(ndev->name, "eth%d", eth_id);
You can't ever just write into ndev->name, what if another networking device is
already using that name?
This change is incorrect on many levels.
David is correct.
For example, imx8DXL has ethernet0 is EQOS TSN, ethernet1 is FEC.
EQOS TSN is andother driver and is registered early, the dev->name is eth0.
So the patch will bring conflict in such case.
Andy