net/ice/base: protect list add with lock

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@intel.com>
Signed-off-by: Paul M Stillwell Jr <paul.m.stillwell.jr@intel.com>
Signed-off-by: Leyi Rong <leyi.rong@intel.com>
Acked-by: Qi Zhang <qi.z.zhang@intel.com>
This commit is contained in:
Leyi Rong 2019-06-19 23:18:22 +08:00 committed by Ferruh Yigit
parent 171a4ae26d
commit 421d265c2a

View File

@ -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;
}