[PATCH 1/1] net: phylib: remove the length limitation of mii bus id
From: Dong Aisheng <hidden>
Date: 2012-03-20 10:53:23
Also in:
lkml, netdev
On Tue, Mar 20, 2012 at 1:32 AM, Shawn Guo [off-list ref] wrote:
On 20 March 2012 12:23, Dong Aisheng [off-list ref] wrote:quoted
From: Dong Aisheng <redacted> When convert to dt, the length of old mii bus id (17 bytes) is not sufficent to use. For example, the bus id could be 800f0000.ethernet-1:00 in DT. This patch removes the bus id length limitation by changing the bus id to a const char pionter and user could dynamically set the bus id via kasprintf function call. Since then no users use MII_BUS_ID_SIZE any more, just remove it. Signed-off-by: Dong Aisheng <redacted> --- The simplest way may just change MII_BUS_ID_SIZE to a more bigger size, but i'm not sure that's gonna be accepted.The simplest fix has been applied on -next tree as below.
Oh, i missed it, seems my patch covers that change. But that patch only fixed wrong phy_name buffer length issue. My patch is totally remove the length limitation of bus id and phy_name or the bus id name will be truncated if it's longer than MII_BUS_ID_SIZE which is not a comfortable limitation.
quoted hunk ↗ jump to hunk
commit a7ed07d51c8abdb407be454c6cb6cfad613759d9 Author: Richard Zhao [off-list ref] Date: ? Sun Jan 29 22:08:12 2012 +0000 ? ?net: fec: correct phy_name buffer length when init phy_name ? ?Fix the bug that we got wrong phy_name on imx6q sabrelite board. ? ?snprintf used wrong length of phy_name. ? ?phy_name length is MII_BUS_ID_SIZE + 3 rather not MII_BUS_ID_SIZE. ? ?I change it to sizeof(phy_name). ? ?Signed-off-by: Richard Zhao [off-list ref] ? ?Acked-by: Shawn Guo [off-list ref] ? ?Acked-by: Florian Fainelli [off-list ref] ? ?Signed-off-by: David S. Miller [off-list ref]diff --git a/drivers/net/ethernet/freescale/fec.cb/drivers/net/ethernet/freescale/fec.c index 7b25e9c..1c7aad8 100644--- a/drivers/net/ethernet/freescale/fec.c +++ b/drivers/net/ethernet/freescale/fec.c@@ -990,7 +990,7 @@ static int fec_enet_mii_probe(struct net_device *ndev)? ? ? ? ? ? ? ?phy_id = 0; ? ? ? ?} - ? ? ? snprintf(phy_name, MII_BUS_ID_SIZE, PHY_ID_FMT, mdio_bus_id, phy_id); + ? ? ? snprintf(phy_name, sizeof(phy_name), PHY_ID_FMT, mdio_bus_id, phy_id); ? ? ? ?phy_dev = phy_connect(ndev, phy_name, &fec_enet_adjust_link, 0, ? ? ? ? ? ? ? ? ? ? ? ? ? ? ?fep->phy_interface); ? ? ? ?if (IS_ERR(phy_dev)) {