This patchset adds support for a "allow_fw_live_reset" generic devlink parameter and use it in bnxt_en driver.
Firmware live reset allows users to reset the firmware in real time. For example, after firmware upgrade, this feature can immediately reset to run the new firmware without reloading the driver or rebooting the system. When device reset is initiated, services running on the host interfaces will momentarily pause and resume once reset is completed which is very similar to momentary network outage. User can initiate the fw reset by using "ethtool --reset ethX all" command. Where ethX is any PF of the device with administrative privileges. Firmware can initiate the live reset only when all the installed host driver(s) also support the feature. For example, if a function is loaded with a very old driver that is not aware of live reset capability, firmware cannot initiate the reset until that driver is unloaded or upgraded. "allow_fw_live_reset" runtime configuration mode allows the user to control this feature by enabling or disabling it in the host driver. And permanent configuration mode allows the user to enable the firmware live reset capability in NVRAM configuration of the device. Also, firmware spec. is updated to 1.10.1.40. v1->v2: Rename param to "allow_fw_live_reset" from "enable_hot_fw_reset". Update documentation files and commit messages with more details of the feature. Vasundhara Volam (4): devlink: Add new "allow_fw_live_reset" generic device parameter. bnxt_en: Update firmware spec. to 1.10.1.40. bnxt_en: Use allow_fw_live_reset generic devlink parameter bnxt_en: Check if fw_live_reset is allowed before doing ETHTOOL_RESET Documentation/networking/devlink/bnxt.rst | 13 +++++ .../networking/devlink/devlink-params.rst | 6 ++ drivers/net/ethernet/broadcom/bnxt/bnxt.c | 28 +++++++++- drivers/net/ethernet/broadcom/bnxt/bnxt.h | 2 + drivers/net/ethernet/broadcom/bnxt/bnxt_devlink.c | 61 +++++++++++++++++++++ drivers/net/ethernet/broadcom/bnxt/bnxt_devlink.h | 1 + drivers/net/ethernet/broadcom/bnxt/bnxt_ethtool.c | 17 +++--- drivers/net/ethernet/broadcom/bnxt/bnxt_hsi.h | 64 +++++++++++++--------- include/net/devlink.h | 4 ++ net/core/devlink.c | 5 ++ 10 files changed, 165 insertions(+), 36 deletions(-) -- 1.8.3.1