• Shaohui Xie's avatar
    net: phy: fix a bug in get_phy_c45_ids · 5f6c99e0
    Shaohui Xie authored
    When probing devices-in-package for a c45 phy, device zero is the last
    device to probe, however, if driver reads 0 from device zero,
    c45_ids->devices_in_package is set to '0', the loop condition of probing
    will be matched again, see codes below:
    
    for (i = 1;i < num_ids && c45_ids->devices_in_package == 0;i++)
    
    driver will run in a dead loop.
    
    This patch restructures the bug and confusing loop, it provides a helper
    function get_phy_c45_devs_in_pkg which to read devices-in-package registers
    of a MMD, and rewrites the loop with using the helper function.
    Signed-off-by: default avatarShaohui Xie <Shaohui.Xie@freescale.com>
    Signed-off-by: default avatarDavid S. Miller <davem@davemloft.net>
    5f6c99e0
phy_device.c 36 KB