Skip to content
  • Florian Fainelli's avatar
    dsa: use an unique and non conflicting bus name for the slave MII bus · f490be04
    Florian Fainelli authored
    
    
    The slave MII bus registered by the DSA code is using the parent MII bus
    as part of its name (ds->master_mii_bus_id), in case the parent MII bus
    name is already 16 characters long (such as d0072004.mdio-mi) we will
    get the following WARN_ON in dsa_switch_setup() when calling
    mdiobus_register():
    
    [   79.088782] ------------[ cut here ]------------
    [   79.093448] WARNING: at fs/sysfs/dir.c:536 sysfs_add_one+0x80/0xa0()
    [   79.099831] sysfs: cannot create duplicate filename
    '/class/mdio_bus/d0072004.mdio-mi'
    
    This is a genuine warning, because the DSA slave MII bus will also be
    named d0072004.mdio-mi, and since MII_BUS_ID_SIZE is 17 characters long
    (with null-terminator) the following will truncate the slave MII bus id:
    
    snprintf(ds->slave_mii_bus->id, MII_BUS_ID_SIZE, "%s-%d:%.2x",
                            ds->master_mii_bus->id, ds->pd->sw_addr);
    
    Fix this by using dsa-<switch index->:<sw_add> which is guaranteed to be
    unique.
    
    Signed-off-by: default avatarFlorian Fainelli <florian@openwrt.org>
    Signed-off-by: default avatarDavid S. Miller <davem@davemloft.net>
    f490be04