]> git.proxmox.com Git - mirror_ubuntu-kernels.git/commitdiff
bnxt_en: Return proper error code for non-existent NVM variable
authorVasundhara Volam <vasundhara-v.volam@broadcom.com>
Mon, 18 Nov 2019 08:56:41 +0000 (03:56 -0500)
committerDavid S. Miller <davem@davemloft.net>
Tue, 19 Nov 2019 01:13:28 +0000 (17:13 -0800)
For NVM params that are not supported in the current NVM
configuration, return the error as -EOPNOTSUPP.

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_devlink.c

index d85e439e94904e062054858c99328589e5f6482d..707827176231b9c4f88c0af0a2138daab9e0d037 100644 (file)
@@ -335,10 +335,17 @@ static int bnxt_hwrm_nvm_req(struct bnxt *bp, u32 param_id, void *msg,
        } else {
                rc = hwrm_send_message_silent(bp, msg, msg_len,
                                              HWRM_CMD_TIMEOUT);
-               if (!rc)
+               if (!rc) {
                        bnxt_copy_from_nvm_data(val, data,
                                                nvm_param.nvm_num_bits,
                                                nvm_param.dl_num_bytes);
+               } else {
+                       struct hwrm_err_output *resp = bp->hwrm_cmd_resp_addr;
+
+                       if (resp->cmd_err ==
+                               NVM_GET_VARIABLE_CMD_ERR_CODE_VAR_NOT_EXIST)
+                               rc = -EOPNOTSUPP;
+               }
        }
        dma_free_coherent(&bp->pdev->dev, sizeof(*data), data, data_dma_addr);
        if (rc == -EACCES)