On Mon, Aug 24, 2020 at 12:35:20AM +0300, Vladimir Oltean wrote:
> slave_dev->name is only populated at this stage if it was specified
> through a label in the device tree. However that is not mandatory.

Hi Vladimir

It is not mandatory, but it is normal.

> When it isn't, the error message looks like this:
> 
> [    5.037057] fsl_enetc 0000:00:00.2 eth2: error -19 setting up slave PHY 
> for eth%d
> [    5.044672] fsl_enetc 0000:00:00.2 eth2: error -19 setting up slave PHY 
> for eth%d
> [    5.052275] fsl_enetc 0000:00:00.2 eth2: error -19 setting up slave PHY 
> for eth%d
> [    5.059877] fsl_enetc 0000:00:00.2 eth2: error -19 setting up slave PHY 
> for eth%d
> 
> which is especially confusing since the error gets printed on behalf of
> the DSA master (fsl_enetc in this case).
> 
> Printing an error message that contains a valid reference to the DSA
> port's name is difficult at this point in the initialization stage, so
> at least we should print some info that is more reliable, even if less
> user-friendly. That may be the driver name and the hardware port index.
> 
> After this change, the error is printed as:
> 
> [    4.957403] mscc_felix 0000:00:00.5: error -19 setting up PHY for port 0
> [    4.964231] mscc_felix 0000:00:00.5: error -19 setting up PHY for port 1
> [    4.971055] mscc_felix 0000:00:00.5: error -19 setting up PHY for port 2
> [    4.977871] mscc_felix 0000:00:00.5: error -19 setting up PHY for port 3

I would prefer both the port number and the interface name. With
setups using D in DSA, there are examples where port 1 on the first
switch is lan1, and port 1 of the second switch is lan5. Having both
avoids some confusion.

Another option would be to call dev_alloc_name() after
alloc_netdev_mqs() if there is no label. The eth%d will then get
replaced with a unique name.

> Fixes: 65951a9eb65e ("net: dsa: Improve subordinate PHY error message")

I'm not sure this actually meets the stable criteria.

       Andrew

Reply via email to