Message ID | 49B6B240.8030701@lebon.org.ua (mailing list archive) |
---|---|
State | Not Applicable, archived |
Headers | show |
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
--- 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:
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>