• Jacob Keller's avatar
    devlink: check flash_update parameter support in net core · 22ec3d23
    Jacob Keller authored
    When implementing .flash_update, drivers which do not support
    per-component update are manually checking the component parameter to
    verify that it is NULL. Without this check, the driver might accept an
    update request with a component specified even though it will not honor
    such a request.
    
    Instead of having each driver check this, move the logic into
    net/core/devlink.c, and use a new `supported_flash_update_params` field
    in the devlink_ops. Drivers which will support per-component update must
    now specify this by setting DEVLINK_SUPPORT_FLASH_UPDATE_COMPONENT in
    the supported_flash_update_params in their devlink_ops.
    
    This helps ensure that drivers do not forget to check for a NULL
    component if they do not support per-component update. This also enables
    a slightly better error message by enabling the core stack to set the
    netlink bad attribute message to indicate precisely the unsupported
    attribute in the message.
    
    Going forward, any new additional parameter to flash update will require
    a bit in the supported_flash_update_params bitfield.
    Signed-off-by: default avatarJacob Keller <jacob.e.keller@intel.com>
    Reviewed-by: default avatarJakub Kicinski <kuba@kernel.org>
    Cc: Jiri Pirko <jiri@mellanox.com>
    Cc: Jonathan Corbet <corbet@lwn.net>
    Cc: Michael Chan <michael.chan@broadcom.com>
    Cc: Bin Luo <luobin9@huawei.com>
    Cc: Saeed Mahameed <saeedm@mellanox.com>
    Cc: Leon Romanovsky <leon@kernel.org>
    Cc: Ido Schimmel <idosch@mellanox.com>
    Cc: Danielle Ratson <danieller@mellanox.com>
    Cc: Shannon Nelson <snelson@pensando.io>
    Signed-off-by: default avatarDavid S. Miller <davem@davemloft.net>
    22ec3d23
core.c 85.3 KB