]> git.karo-electronics.de Git - karo-tx-linux.git/commitdiff
powerpc 4xx EMAC driver: device name reported on timeout is not correct
authorMikhail Zolotaryov <lebon@lebon.org.ua>
Thu, 19 Mar 2009 22:28:02 +0000 (22:28 +0000)
committerDavid S. Miller <davem@davemloft.net>
Sat, 21 Mar 2009 23:50:20 +0000 (16:50 -0700)
Hi,

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>
Signed-off-by: David S. Miller <davem@davemloft.net>
drivers/net/ibm_newemac/core.c

index 6fd7aa61736ed8b49e7dfc282647819823976671..a815e17a0ab407a4dabd4a86af4beb47a679d853 100644 (file)
@@ -134,7 +134,7 @@ static inline void emac_report_timeout_error(struct emac_instance *dev,
                                  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: