[dpdk-dev] [PATCH v3 45/69] net/ice/base: protect list add with lock
Leyi Rong
leyi.rong at intel.com
Wed Jun 19 17:18:22 CEST 2019
Function ice_add_rule_internal needs to call ice_create_pkt_fwd_rule
with lock held because it uses the LIST_ADD to modify the filter
rule list. It needs to be protected when modified.
Signed-off-by: Tarun Singh <tarun.k.singh at intel.com>
Signed-off-by: Paul M Stillwell Jr <paul.m.stillwell.jr at intel.com>
Signed-off-by: Leyi Rong <leyi.rong at intel.com>
---
drivers/net/ice/base/ice_switch.c | 7 ++++---
1 file changed, 4 insertions(+), 3 deletions(-)
diff --git a/drivers/net/ice/base/ice_switch.c b/drivers/net/ice/base/ice_switch.c
index 13d0dad58..d6890c049 100644
--- a/drivers/net/ice/base/ice_switch.c
+++ b/drivers/net/ice/base/ice_switch.c
@@ -2288,14 +2288,15 @@ ice_add_rule_internal(struct ice_hw *hw, u8 recp_id,
m_entry = ice_find_rule_entry(hw, recp_id, new_fltr);
if (!m_entry) {
- ice_release_lock(rule_lock);
- return ice_create_pkt_fwd_rule(hw, f_entry);
+ status = ice_create_pkt_fwd_rule(hw, f_entry);
+ goto exit_add_rule_internal;
}
cur_fltr = &m_entry->fltr_info;
status = ice_add_update_vsi_list(hw, m_entry, cur_fltr, new_fltr);
- ice_release_lock(rule_lock);
+exit_add_rule_internal:
+ ice_release_lock(rule_lock);
return status;
}
--
2.17.1
More information about the dev
mailing list