bnxt_en: add more error checks to HWRM_NVM_INSTALL_UPDATE
authorKalesh AP <kalesh-anakkur.purayil@broadcom.com>
Sat, 5 Mar 2022 08:54:35 +0000 (03:54 -0500)
committerDavid S. Miller <davem@davemloft.net>
Sat, 5 Mar 2022 11:16:55 +0000 (11:16 +0000)
FW returns error code "NVM_INSTALL_UPDATE_CMD_ERR_CODE_ANTI_ROLLBACK"
in the response to indicate that HWRM_NVM_INSTALL_UPDATE command has
failed due to Anti-rollback feature. Parse the error and return an
appropriate error code to the user.

Reviewed-by: Somnath Kotur <somnath.kotur@broadcom.com>
Reviewed-by: Edwin Peer <edwin.peer@broadcom.com>
Signed-off-by: Kalesh AP <kalesh-anakkur.purayil@broadcom.com>
Signed-off-by: Michael Chan <michael.chan@broadcom.com>
Signed-off-by: David S. Miller <davem@davemloft.net>
drivers/net/ethernet/broadcom/bnxt/bnxt_ethtool.c

index 59838a4..a3151af 100644 (file)
@@ -2609,6 +2609,10 @@ int bnxt_flash_package_from_fw_obj(struct net_device *dev, const struct firmware
                cmd_err = ((struct hwrm_err_output *)resp)->cmd_err;
 
                switch (cmd_err) {
+               case NVM_INSTALL_UPDATE_CMD_ERR_CODE_ANTI_ROLLBACK:
+                       netdev_err(dev, "HWRM_NVM_INSTALL_UPDATE failure Anti-rollback detected\n");
+                       rc = -EALREADY;
+                       break;
                case NVM_INSTALL_UPDATE_CMD_ERR_CODE_FRAG_ERR:
                        install->flags =
                                cpu_to_le16(NVM_INSTALL_UPDATE_REQ_FLAGS_ALLOWED_TO_DEFRAG);