bnxt_en: Return -EAGAIN if fw command returns BUSY
authorVasundhara Volam <vasundhara-v.volam@broadcom.com>
Sun, 8 Mar 2020 22:45:53 +0000 (18:45 -0400)
committerDavid S. Miller <davem@davemloft.net>
Mon, 9 Mar 2020 04:54:46 +0000 (21:54 -0700)
If firmware command returns error code as HWRM_ERR_CODE_BUSY, which
means it cannot handle the command due to a conflicting command
from another function, convert it to -EAGAIN.  If it is an ethtool
operation, this error code will be returned to userspace.

Signed-off-by: Vasundhara Volam <vasundhara-v.volam@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.c

index e5da60a..02ac718 100644 (file)
@@ -4161,6 +4161,7 @@ static int bnxt_hwrm_to_stderr(u32 hwrm_err)
        case HWRM_ERR_CODE_NO_BUFFER:
                return -ENOMEM;
        case HWRM_ERR_CODE_HOT_RESET_PROGRESS:
+       case HWRM_ERR_CODE_BUSY:
                return -EAGAIN;
        case HWRM_ERR_CODE_CMD_NOT_SUPPORTED:
                return -EOPNOTSUPP;