If BSP not support a command and the driver send it to BSP, some
unhappy thing will happen and the logic will go wrong.
Fix it by make sure the BSP does support the command before driver
send it to BSP.

Fixes: b301fd736003 ("net/nfp: add force reload firmware option")
Cc: peng.zh...@corigine.com
Cc: sta...@dpdk.org

Signed-off-by: Chaoyong He <chaoyong...@corigine.com>
Reviewed-by: Long Wu <long...@corigine.com>
Reviewed-by: Peng Zhang <peng.zh...@corigine.com>
---
 drivers/net/nfp/nfp_ethdev.c | 4 ++--
 1 file changed, 2 insertions(+), 2 deletions(-)

diff --git a/drivers/net/nfp/nfp_ethdev.c b/drivers/net/nfp/nfp_ethdev.c
index a09bbe52ca..db12914afe 100644
--- a/drivers/net/nfp/nfp_ethdev.c
+++ b/drivers/net/nfp/nfp_ethdev.c
@@ -1407,7 +1407,7 @@ nfp_fw_reload_for_single_pf(struct nfp_nsp *nsp,
        int ret;
        bool fw_changed = true;
 
-       if (nfp_nsp_fw_loaded(nsp) && !force_reload_fw) {
+       if (nfp_nsp_has_fw_loaded(nsp) && nfp_nsp_fw_loaded(nsp) && 
!force_reload_fw) {
                ret = nfp_fw_check_change(cpp, fw_name, &fw_changed);
                if (ret != 0)
                        return ret;
@@ -1448,7 +1448,7 @@ nfp_fw_reload_for_multi_pf(struct nfp_nsp *nsp,
                goto keepalive_uninit;
        }
 
-       if (nfp_nsp_fw_loaded(nsp) && !reload_fw) {
+       if (nfp_nsp_has_fw_loaded(nsp) && nfp_nsp_fw_loaded(nsp) && !reload_fw) 
{
                err = nfp_fw_check_change(cpp, fw_name, &fw_changed);
                if (err != 0)
                        goto keepalive_stop;
-- 
2.39.1

Reply via email to