Patchwork powerpc 4xx EMAC driver: device name reported on timeout is not correct

login
register
mail settings
Submitter Mikhail Zolotaryov
Date March 10, 2009, 6:32 p.m.
Message ID <49B6B240.8030701@lebon.org.ua>
Download mbox | patch
Permalink /patch/24262/
State Not Applicable
Headers show

Comments

Mikhail Zolotaryov - March 10, 2009, 6:32 p.m.
Hi,

not critical problem here.

IBM EMAC driver performs device reset (drivers/net/ibm_newemac/core.c: 
emac_probe() -> emac_init_phy() -> emac_reset()) before registering 
appropriate net_device (emac_probe() -> register_netdev()), so 
net_device name contains raw format string during EMAC reset ("eth%d").

If the case of reset timeout, emac_report_timeout_error() function is 
called to report an error. The problem is this function uses net_device 
name to report device related, which is not correct, as a result in the 
kernel log buffer we see:

eth%d: reset timeout

The solution is to print device_node full_name instead. After applying 
the patch proposed, error string is like the following:

/plb/opb/ethernet@ef600e00: reset timeout


Signed-off-by: Mikhail Zolotaryov <lebon@lebon.org.ua>
Benjamin Herrenschmidt - March 20, 2009, 5:38 a.m.
On Tue, 2009-03-10 at 20:32 +0200, Mikhail Zolotaryov wrote:
> Hi,
> 
> not critical problem here.
> 
> IBM EMAC driver performs device reset (drivers/net/ibm_newemac/core.c: 
> emac_probe() -> emac_init_phy() -> emac_reset()) before registering 
> appropriate net_device (emac_probe() -> register_netdev()), so 
> net_device name contains raw format string during EMAC reset ("eth%d").
> 
> If the case of reset timeout, emac_report_timeout_error() function is 
> called to report an error. The problem is this function uses net_device 
> name to report device related, which is not correct, as a result in the 
> kernel log buffer we see:
> 
> eth%d: reset timeout
> 
> The solution is to print device_node full_name instead. After applying 
> the patch proposed, error string is like the following:
> 
> /plb/opb/ethernet@ef600e00: reset timeout
> 
> 
> Signed-off-by: Mikhail Zolotaryov <lebon@lebon.org.ua>

Acked-by: Benjamin Herrenschmidt <benh@kernel.crashing.org>
---

Please submit with my Ack included to the netdev list.

Cheers,
Ben.

> 
> 
> plain text document attachment (emac_report_timeout_error.patch)
> --- linux-2.6/drivers/net/ibm_newemac/core.c.orig	2009-03-10 20:24:12.000000000 +0200
> +++ linux-2.6/drivers/net/ibm_newemac/core.c		2009-03-10 20:29:12.000000000 +0200
> @@ -134,7 +134,7 @@
>  				  EMAC_FTR_440EP_PHY_CLK_FIX))
>  		DBG(dev, "%s" NL, error);
>  	else if (net_ratelimit())
> -		printk(KERN_ERR "%s: %s\n", dev->ndev->name, error);
> +		printk(KERN_ERR "%s: %s\n", dev->ofdev->node->full_name, error);
>  }
>  
>  /* EMAC PHY clock workaround:
> _______________________________________________
> Linuxppc-dev mailing list
> Linuxppc-dev@ozlabs.org
> https://ozlabs.org/mailman/listinfo/linuxppc-dev

Patch

--- linux-2.6/drivers/net/ibm_newemac/core.c.orig	2009-03-10 20:24:12.000000000 +0200
+++ linux-2.6/drivers/net/ibm_newemac/core.c		2009-03-10 20:29:12.000000000 +0200
@@ -134,7 +134,7 @@ 
 				  EMAC_FTR_440EP_PHY_CLK_FIX))
 		DBG(dev, "%s" NL, error);
 	else if (net_ratelimit())
-		printk(KERN_ERR "%s: %s\n", dev->ndev->name, error);
+		printk(KERN_ERR "%s: %s\n", dev->ofdev->node->full_name, error);
 }
 
 /* EMAC PHY clock workaround: