RE: [EXT] Re: [PATCH] net: fec: Keep device numbering consistent with datasheet

From: Andy Duan
Date: Thu Sep 24 2020 - 02:36:33 EST


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