From: Peng Zhang <peng1x.zh...@intel.com>

Add DCF state checking mechanism which will conduct whether reset is
done.And modify error code to avoid misleading.

Fixes: b71573ec2fc2 ("net/ice: retry getting VF VSI map after failure")
Cc: sta...@dpdk.org

Signed-off-by: Peng Zhang <peng1x.zh...@intel.com>
---
 drivers/net/ice/ice_dcf.c           | 3 ++-
 drivers/net/ice/ice_switch_filter.c | 2 +-
 2 files changed, 3 insertions(+), 2 deletions(-)

diff --git a/drivers/net/ice/ice_dcf.c b/drivers/net/ice/ice_dcf.c
index 7f0c074b01..3808272ea3 100644
--- a/drivers/net/ice/ice_dcf.c
+++ b/drivers/net/ice/ice_dcf.c
@@ -544,7 +544,8 @@ ice_dcf_handle_vsi_update_event(struct ice_dcf_hw *hw)
 
        for (;;) {
                if (ice_dcf_get_vf_resource(hw) == 0 &&
-                   ice_dcf_get_vf_vsi_map(hw) >= 0) {
+                   ice_dcf_get_vf_vsi_map(hw) >= 0 &&
+                   ice_dcf_check_reset_done(hw) == 0) {
                        err = 0;
                        break;
                }
diff --git a/drivers/net/ice/ice_switch_filter.c 
b/drivers/net/ice/ice_switch_filter.c
index 36c9bffb73..199a981018 100644
--- a/drivers/net/ice/ice_switch_filter.c
+++ b/drivers/net/ice/ice_switch_filter.c
@@ -434,7 +434,7 @@ ice_switch_create(struct ice_adapter *ad,
                flow->rule = filter_conf_ptr;
        } else {
                if (ice_dcf_adminq_need_retry(ad))
-                       ret = -EAGAIN;
+                       ret = -EBUSY;
                else
                        ret = -EINVAL;
 
-- 
2.25.1

Reply via email to