• Vladimir Oltean's avatar
    net: dsa: provide a second modalias to tag proto drivers based on their name · 94793a56
    Vladimir Oltean authored
    Currently, tagging protocol drivers have a modalias of
    "dsa_tag:id-<number>", where the number is one of DSA_TAG_PROTO_*_VALUE.
    
    This modalias makes it possible for the request_module() call in
    dsa_tag_driver_get() to work, given the input it has - an integer
    returned by ds->ops->get_tag_protocol().
    
    It is also possible to change tagging protocols at (pseudo-)runtime, via
    sysfs or via device tree, and this works via the name string of the
    tagging protocol rather than via its id (DSA_TAG_PROTO_*_VALUE).
    
    In the latter case, there is no request_module() call, because there is
    no association that the DSA core has between the string name and the ID,
    to construct the modalias. The module is simply assumed to have been
    inserted. This is actually slightly problematic when the tagging
    protocol change should take place at probe time, since it's expected
    that the dependency module should get autoloaded.
    
    For this purpose, let's introduce a second modalias, so that the DSA
    core can call request_module() by name. There is no reason to make the
    modalias by name optional, so just modify the MODULE_ALIAS_DSA_TAG_DRIVER()
    macro to take both the ID and the name as arguments, and generate two
    modaliases behind the scenes.
    Suggested-by: default avatarMichael Walle <michael@walle.cc>
    Signed-off-by: default avatarVladimir Oltean <vladimir.oltean@nxp.com>
    Tested-by: Michael Walle <michael@walle.cc> # on kontron-sl28 w/ ocelot_8021q
    Tested-by: default avatarMichael Walle <michael@walle.cc>
    Signed-off-by: default avatarJakub Kicinski <kuba@kernel.org>
    94793a56
dsa_priv.h 22.3 KB