Thread (5 messages) flat view 5 messages, 5 authors, 2012-03-21

Re: [PATCH 1/1] net: phylib: remove the length limitation of mii bus id

From: Florian Fainelli <florian@openwrt.org>
Date: 2012-03-20 14:08:04
Also in: linux-arm-kernel, lkml

Hi,

Le 03/20/12 11:53, Dong Aisheng a écrit :
On Tue, Mar 20, 2012 at 1:32 AM, Shawn Guo[off-list ref]  wrote:
quoted
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.
Then just increase the bus id size locally for your driver. Drivers that 
can live with a static allocation are better of using it.

Your patch completely missed testing the return value of kasprintf(), 
and its return value can be NULL, please fix this at least.
quoted
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.c
b/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)) {
--
To unsubscribe from this list: send the line "unsubscribe netdev" in
the body of a message to majordomo@vger.kernel.org
More majordomo info at  http://vger.kernel.org/majordomo-info.html
Keyboard shortcuts
hback out one level
jnext message in thread
kprevious message in thread
ldrill in
Escclose help / fold thread tree
?toggle this help