net/ice: fix deadlock on flow redirect

If flow redirect failed, the spinlock will not be unlocked.
This patch fixes it.

Fixes: bc9201388d56 ("net/ice: support flow redirect")
Cc: stable@dpdk.org

Signed-off-by: Dapeng Yu <dapengx.yu@intel.com>
Acked-by: Qi Zhang <qi.z.zhang@intel.com>
This commit is contained in:
Dapeng Yu 2021-10-11 15:38:49 +08:00 committed by Qi Zhang
parent 250e2ed8d8
commit cc2f82b96a

View File

@ -2542,7 +2542,7 @@ ice_flow_redirect(struct ice_adapter *ad,
struct ice_pf *pf = &ad->pf;
struct rte_flow *p_flow;
void *temp;
int ret;
int ret = 0;
rte_spinlock_lock(&pf->flow_ops_lock);
@ -2552,11 +2552,11 @@ ice_flow_redirect(struct ice_adapter *ad,
ret = p_flow->engine->redirect(ad, p_flow, rd);
if (ret) {
PMD_DRV_LOG(ERR, "Failed to redirect flows");
return ret;
break;
}
}
rte_spinlock_unlock(&pf->flow_ops_lock);
return 0;
return ret;
}