net/bnxt: return proper error code
authorAjit Khaparde <ajit.khaparde@broadcom.com>
Mon, 8 Jan 2018 20:24:29 +0000 (12:24 -0800)
committerFerruh Yigit <ferruh.yigit@intel.com>
Tue, 16 Jan 2018 17:47:49 +0000 (18:47 +0100)
If the FW fails bnxt_hwrm_func_reset() with an error status,
instead of returning -1, return a more standard value of -EIO.
Similarly sometimes the status returned by certain FW commands
may not be generic. Return a more standard value of -EIO in
that case as well.

Signed-off-by: Ajit Khaparde <ajit.khaparde@broadcom.com>
drivers/net/bnxt/bnxt_ethdev.c

index d000282..ce7030d 100644 (file)
@@ -378,6 +378,10 @@ static int bnxt_init_chip(struct bnxt *bp)
 err_out:
        bnxt_free_all_hwrm_resources(bp);
 
+       /* Some of the error status returned by FW may not be from errno.h */
+       if (rc > 0)
+               rc = -EIO;
+
        return rc;
 }
 
@@ -3268,7 +3272,7 @@ skip_init:
        rc = bnxt_hwrm_func_reset(bp);
        if (rc) {
                RTE_LOG(ERR, PMD, "hwrm chip reset failure rc: %x\n", rc);
-               rc = -1;
+               rc = -EIO;
                goto error_free;
        }