diff options
Diffstat (limited to 'drivers/net/ethernet/intel/iavf/iavf_fdir.c')
| -rw-r--r-- | drivers/net/ethernet/intel/iavf/iavf_fdir.c | 11 | 
1 files changed, 8 insertions, 3 deletions
diff --git a/drivers/net/ethernet/intel/iavf/iavf_fdir.c b/drivers/net/ethernet/intel/iavf/iavf_fdir.c index 6146203efd84..505e82ebafe4 100644 --- a/drivers/net/ethernet/intel/iavf/iavf_fdir.c +++ b/drivers/net/ethernet/intel/iavf/iavf_fdir.c @@ -722,7 +722,9 @@ void iavf_print_fdir_fltr(struct iavf_adapter *adapter, struct iavf_fdir_fltr *f  bool iavf_fdir_is_dup_fltr(struct iavf_adapter *adapter, struct iavf_fdir_fltr *fltr)  {  	struct iavf_fdir_fltr *tmp; +	bool ret = false; +	spin_lock_bh(&adapter->fdir_fltr_lock);  	list_for_each_entry(tmp, &adapter->fdir_list_head, list) {  		if (tmp->flow_type != fltr->flow_type)  			continue; @@ -732,11 +734,14 @@ bool iavf_fdir_is_dup_fltr(struct iavf_adapter *adapter, struct iavf_fdir_fltr *  		    !memcmp(&tmp->ip_data, &fltr->ip_data,  			    sizeof(fltr->ip_data)) &&  		    !memcmp(&tmp->ext_data, &fltr->ext_data, -			    sizeof(fltr->ext_data))) -			return true; +			    sizeof(fltr->ext_data))) { +			ret = true; +			break; +		}  	} +	spin_unlock_bh(&adapter->fdir_fltr_lock); -	return false; +	return ret;  }  /**  | 
