This adds a DEVLINK_ATTR_DRY_RUN which is used to indicate a request to validate a potentially destructive operation without performing the actions yet. In theory it could be used for other devlink operations in the future. For flash update, it allows the user to validate a flash image, including ensuring the driver for the device is willing to program it, without actually committing an update yet. There is an accompanying series for iproute2 which allows adding the dry-run attribute. It does as Jakub suggested and checks the maximum attribute before allowing the dry run in order to avoid accidentally performing a real update on older kernels. Changes since v1: * Added maintainers to Cc (thanks for pointing out the script, Jiri!) * Replaced bool in struct with u8 : 1 * Added kernel doc to devlink_flash_update_params * Renamed PLDMFW parameter from dry_run to validate * Reduced indentation in devlink.c by using nla_get_flag Changes since v2: * Split the fix for overwrite_mask doc to its own patch * Split pldmfw changes to their own patch * Fix lib/pldmfw.c code mentioning dry_run * Name the pldmfw context parameter "only_validate" for clarity * Dropped the comment about dry run Cc: Jacob Keller <jacob.e.keller@xxxxxxxxx> Cc: Jonathan Corbet <corbet@xxxxxxx> Cc: Jiri Pirko <jiri@xxxxxxxxxx> Cc: "David S. Miller" <davem@xxxxxxxxxxxxx> Cc: Eric Dumazet <edumazet@xxxxxxxxxx> Cc: Jakub Kicinski <kuba@xxxxxxxxxx> Cc: Paolo Abeni <pabeni@xxxxxxxxxx> Cc: Tony Nguyen <anthony.l.nguyen@xxxxxxxxx> Cc: David Ahern <dsahern@xxxxxxxxxx> Cc: Stephen Hemminger <stephen@xxxxxxxxxxxxxxxxxx> Cc: linux-doc@xxxxxxxxxxxxxxx Cc: netdev@xxxxxxxxxxxxxxx Jacob Keller (4): devlink: add missing kdoc for overwrite mask devlink: add dry run attribute to flash update pldmfw: offer option to only validate in image but not update ice: support dry run of a flash update to validate firmware file Documentation/driver-api/pldmfw/index.rst | 10 ++++++++ .../networking/devlink/devlink-flash.rst | 23 +++++++++++++++++++ drivers/net/ethernet/intel/ice/ice_devlink.c | 3 ++- .../net/ethernet/intel/ice/ice_fw_update.c | 14 +++++++---- include/linux/pldmfw.h | 5 ++++ include/net/devlink.h | 4 ++++ include/uapi/linux/devlink.h | 8 +++++++ lib/pldmfw/pldmfw.c | 12 ++++++++++ net/core/devlink.c | 17 +++++++++++++- 9 files changed, 90 insertions(+), 6 deletions(-) base-commit: 5588d628027092e66195097bdf6835ddf64418b3 -- 2.35.1.456.ga9c7032d4631