From 6dc875ab5ff76377376906aa6d05d95ffd34b9f9 Mon Sep 17 00:00:00 2001 From: Ajit Khaparde Date: Wed, 25 Jul 2018 18:15:47 -0700 Subject: [PATCH] net/bnxt: check access denied for HWRM commands Firmware can restrict access to certain resources in the hardware depending on various factors. In such cases when the PMD tries to configure these resources the firmware will return HWRM_ERR_CODE_RESOURCE_ACCESS_DENIED error. Parse this and return the standard EACCES error to the applications. Fixes: 804e746c7b73 ("net/bnxt: add hardware resource manager init code") Cc: stable@dpdk.org Signed-off-by: Ajit Khaparde --- drivers/net/bnxt/bnxt_hwrm.c | 8 ++++++++ 1 file changed, 8 insertions(+) diff --git a/drivers/net/bnxt/bnxt_hwrm.c b/drivers/net/bnxt/bnxt_hwrm.c index 5e8970ac3b..c682488ae3 100644 --- a/drivers/net/bnxt/bnxt_hwrm.c +++ b/drivers/net/bnxt/bnxt_hwrm.c @@ -182,6 +182,10 @@ err_ret: if (rc) { \ PMD_DRV_LOG(ERR, "failed rc:%d\n", rc); \ rte_spinlock_unlock(&bp->hwrm_lock); \ + if (rc == HWRM_ERR_CODE_RESOURCE_ACCESS_DENIED) \ + rc = -EACCES; \ + else if (rc > 0) \ + rc = -EINVAL; \ return rc; \ } \ if (resp->error_code) { \ @@ -200,6 +204,10 @@ err_ret: PMD_DRV_LOG(ERR, "error %d\n", rc); \ } \ rte_spinlock_unlock(&bp->hwrm_lock); \ + if (rc == HWRM_ERR_CODE_RESOURCE_ACCESS_DENIED) \ + rc = -EACCES; \ + else if (rc > 0) \ + rc = -EINVAL; \ return rc; \ } \ } while (0) -- 2.20.1