• Bartosz Golaszewski's avatar
    net: phy: don't abuse devres in devm_mdiobus_register() · ac3a68d5
    Bartosz Golaszewski authored
    We currently have two managed helpers for mdiobus - devm_mdiobus_alloc()
    and devm_mdiobus_register(). The idea behind devres is that the release
    callback releases whatever resource the devm function allocates. In the
    mdiobus case however there's no devres associated with the device by
    devm_mdiobus_register(). Instead the release callback for
    devm_mdiobus_alloc(): _devm_mdiobus_free() unregisters the device if
    it is marked as managed.
    
    This all seems wrong. The managed structure shouldn't need to know or
    care about whether it's managed or not - and this is the case now for
    struct mii_bus. The devres wrapper should be opaque to the managed
    resource.
    
    This changeset makes devm_mdiobus_alloc() and devm_mdiobus_register()
    conform to common devres standards: devm_mdiobus_alloc() allocates a
    devres structure and registers a callback that will call mdiobus_free().
    __devm_mdiobus_register() allocated another devres and registers a
    callback that will unregister the bus.
    Signed-off-by: default avatarBartosz Golaszewski <bgolaszewski@baylibre.com>
    Signed-off-by: default avatarDavid S. Miller <davem@davemloft.net>
    ac3a68d5
mdio_bus.c 26.2 KB