diff mbox series

[net] net: dsa: change PHY error message again

Message ID 20200823213520.2445615-1-olteanv@gmail.com
State Changes Requested
Delegated to: David Miller
Headers show
Series [net] net: dsa: change PHY error message again | expand

Commit Message

Vladimir Oltean Aug. 23, 2020, 9:35 p.m. UTC
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.
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

Fixes: 65951a9eb65e ("net: dsa: Improve subordinate PHY error message")
Signed-off-by: Vladimir Oltean <olteanv@gmail.com>
---
 net/dsa/slave.c | 4 ++--
 1 file changed, 2 insertions(+), 2 deletions(-)

Comments

Andrew Lunn Aug. 23, 2020, 10:26 p.m. UTC | #1
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
Florian Fainelli Aug. 24, 2020, 3:37 a.m. UTC | #2
On 8/23/2020 3:26 PM, Andrew Lunn wrote:
> 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.

How about printing the tree, switch id and port number that way we have 
all the uniquely identifying information at hand?

> 
> 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.

That would work, too.

> 
>> Fixes: 65951a9eb65e ("net: dsa: Improve subordinate PHY error message")
> 
> I'm not sure this actually meets the stable criteria.

Agreed this might be a little bit too much.
diff mbox series

Patch

diff --git a/net/dsa/slave.c b/net/dsa/slave.c
index 53310bbdeb0d..59e2d3c1a717 100644
--- a/net/dsa/slave.c
+++ b/net/dsa/slave.c
@@ -1832,8 +1832,8 @@  int dsa_slave_create(struct dsa_port *port)
 
 	ret = dsa_slave_phy_setup(slave_dev);
 	if (ret) {
-		netdev_err(master, "error %d setting up slave PHY for %s\n",
-			   ret, slave_dev->name);
+		dev_err(ds->dev, "error %d setting up PHY for port %d\n",
+			ret, port->index);
 		goto out_gcells;
 	}