Allow users to request a dry run of a flash update by adding the DEVLINK_ATTR_DRY_RUN. Because many devlink commands do not validate and reject unknown attributes, this could have unexpected side effects on older kernels which lack the attribute. To handle this, check the socket and determine the maximum attribute the kernel supports. Only allow passing the DEVLINK_ATTR_DRY_RUN for kernels which have the attribute. This allows a user to validate that a flash update will be accepted by the driver and device without being forced to commit to updating. Changes since v1 * Add Cc for maintainers * Make dl_kernel_supports_dry_run more generic Changes since v2 * Remove unnecessary () with return * Reduce indentation of dl_get_max_attr 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 (3): update <linux/devlink.h> UAPI header mnlg: add function to get CTRL_ATTR_MAXATTR value devlink: add dry run attribute support to devlink flash devlink/devlink.c | 46 +++++++++++++++++++++++++++-- devlink/mnlg.c | 56 ++++++++++++++++++++++++++++++++++++ devlink/mnlg.h | 1 + include/uapi/linux/devlink.h | 8 ++++++ 4 files changed, 109 insertions(+), 2 deletions(-) base-commit: 4cb0bec3744ac4f8d21de0e769f170e4059c6b9e -- 2.35.1.456.ga9c7032d4631