diff options
| author | Rafael J. Wysocki <[email protected]> | 2015-10-09 22:13:30 +0200 | 
|---|---|---|
| committer | Rafael J. Wysocki <[email protected]> | 2015-10-09 22:13:30 +0200 | 
| commit | 670aee3fc7ac37ae947f8b582d87b51d5fa36524 (patch) | |
| tree | 9885998483d4506208e5aef9c13c8a86adea20bb /drivers/net/ethernet/intel/i40evf | |
| parent | d61e87ac53292a3138b4354b687558973686b6ca (diff) | |
| parent | 55582bccdc1e89ecc973c260d46e247df675d4df (diff) | |
Merge branches 'pm-devfreq' and 'pm-cpufreq'
* pm-devfreq:
  PM / devfreq: fix double kfree
  PM / devfreq: Fix governor_store()
* pm-cpufreq:
  cpufreq: prevent lockup on reading scaling_available_frequencies
  cpufreq: acpi_cpufreq: prevent crash on reading freqdomain_cpus
Diffstat (limited to 'drivers/net/ethernet/intel/i40evf')
| -rw-r--r-- | drivers/net/ethernet/intel/i40evf/i40e_adminq.c | 9 | 
1 files changed, 9 insertions, 0 deletions
| diff --git a/drivers/net/ethernet/intel/i40evf/i40e_adminq.c b/drivers/net/ethernet/intel/i40evf/i40e_adminq.c index f08450b90774..929d47152bf2 100644 --- a/drivers/net/ethernet/intel/i40evf/i40e_adminq.c +++ b/drivers/net/ethernet/intel/i40evf/i40e_adminq.c @@ -887,6 +887,13 @@ i40e_status i40evf_clean_arq_element(struct i40e_hw *hw,  	/* take the lock before we start messing with the ring */  	mutex_lock(&hw->aq.arq_mutex); +	if (hw->aq.arq.count == 0) { +		i40e_debug(hw, I40E_DEBUG_AQ_MESSAGE, +			   "AQRX: Admin queue not initialized.\n"); +		ret_code = I40E_ERR_QUEUE_EMPTY; +		goto clean_arq_element_err; +	} +  	/* set next_to_use to head */  	ntu = (rd32(hw, hw->aq.arq.head) & I40E_VF_ARQH1_ARQH_MASK);  	if (ntu == ntc) { @@ -948,6 +955,8 @@ clean_arq_element_out:  	/* Set pending if needed, unlock and return */  	if (pending != NULL)  		*pending = (ntc > ntu ? hw->aq.arq.count : 0) + (ntu - ntc); + +clean_arq_element_err:  	mutex_unlock(&hw->aq.arq_mutex);  	return ret_code; |