diff options
author | Rafael J. Wysocki <rafael.j.wysocki@intel.com> | 2015-10-09 16:13:30 -0400 |
---|---|---|
committer | Rafael J. Wysocki <rafael.j.wysocki@intel.com> | 2015-10-09 16:13:30 -0400 |
commit | 670aee3fc7ac37ae947f8b582d87b51d5fa36524 (patch) | |
tree | 9885998483d4506208e5aef9c13c8a86adea20bb /drivers/net/ethernet/intel | |
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')
-rw-r--r-- | drivers/net/ethernet/intel/i40e/i40e_adminq.c | 9 | ||||
-rw-r--r-- | drivers/net/ethernet/intel/i40e/i40e_main.c | 3 | ||||
-rw-r--r-- | drivers/net/ethernet/intel/i40evf/i40e_adminq.c | 9 |
3 files changed, 20 insertions, 1 deletions
diff --git a/drivers/net/ethernet/intel/i40e/i40e_adminq.c b/drivers/net/ethernet/intel/i40e/i40e_adminq.c index 3e0d20037675..62488a67149d 100644 --- a/drivers/net/ethernet/intel/i40e/i40e_adminq.c +++ b/drivers/net/ethernet/intel/i40e/i40e_adminq.c | |||
@@ -946,6 +946,13 @@ i40e_status i40e_clean_arq_element(struct i40e_hw *hw, | |||
946 | /* take the lock before we start messing with the ring */ | 946 | /* take the lock before we start messing with the ring */ |
947 | mutex_lock(&hw->aq.arq_mutex); | 947 | mutex_lock(&hw->aq.arq_mutex); |
948 | 948 | ||
949 | if (hw->aq.arq.count == 0) { | ||
950 | i40e_debug(hw, I40E_DEBUG_AQ_MESSAGE, | ||
951 | "AQRX: Admin queue not initialized.\n"); | ||
952 | ret_code = I40E_ERR_QUEUE_EMPTY; | ||
953 | goto clean_arq_element_err; | ||
954 | } | ||
955 | |||
949 | /* set next_to_use to head */ | 956 | /* set next_to_use to head */ |
950 | ntu = (rd32(hw, hw->aq.arq.head) & I40E_PF_ARQH_ARQH_MASK); | 957 | ntu = (rd32(hw, hw->aq.arq.head) & I40E_PF_ARQH_ARQH_MASK); |
951 | if (ntu == ntc) { | 958 | if (ntu == ntc) { |
@@ -1007,6 +1014,8 @@ clean_arq_element_out: | |||
1007 | /* Set pending if needed, unlock and return */ | 1014 | /* Set pending if needed, unlock and return */ |
1008 | if (pending != NULL) | 1015 | if (pending != NULL) |
1009 | *pending = (ntc > ntu ? hw->aq.arq.count : 0) + (ntu - ntc); | 1016 | *pending = (ntc > ntu ? hw->aq.arq.count : 0) + (ntu - ntc); |
1017 | |||
1018 | clean_arq_element_err: | ||
1010 | mutex_unlock(&hw->aq.arq_mutex); | 1019 | mutex_unlock(&hw->aq.arq_mutex); |
1011 | 1020 | ||
1012 | if (i40e_is_nvm_update_op(&e->desc)) { | 1021 | if (i40e_is_nvm_update_op(&e->desc)) { |
diff --git a/drivers/net/ethernet/intel/i40e/i40e_main.c b/drivers/net/ethernet/intel/i40e/i40e_main.c index 851c1a159be8..2fdf978ae6a5 100644 --- a/drivers/net/ethernet/intel/i40e/i40e_main.c +++ b/drivers/net/ethernet/intel/i40e/i40e_main.c | |||
@@ -2672,7 +2672,8 @@ static int i40e_configure_rx_ring(struct i40e_ring *ring) | |||
2672 | rx_ctx.lrxqthresh = 2; | 2672 | rx_ctx.lrxqthresh = 2; |
2673 | rx_ctx.crcstrip = 1; | 2673 | rx_ctx.crcstrip = 1; |
2674 | rx_ctx.l2tsel = 1; | 2674 | rx_ctx.l2tsel = 1; |
2675 | rx_ctx.showiv = 1; | 2675 | /* this controls whether VLAN is stripped from inner headers */ |
2676 | rx_ctx.showiv = 0; | ||
2676 | #ifdef I40E_FCOE | 2677 | #ifdef I40E_FCOE |
2677 | rx_ctx.fc_ena = (vsi->type == I40E_VSI_FCOE); | 2678 | rx_ctx.fc_ena = (vsi->type == I40E_VSI_FCOE); |
2678 | #endif | 2679 | #endif |
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, | |||
887 | /* take the lock before we start messing with the ring */ | 887 | /* take the lock before we start messing with the ring */ |
888 | mutex_lock(&hw->aq.arq_mutex); | 888 | mutex_lock(&hw->aq.arq_mutex); |
889 | 889 | ||
890 | if (hw->aq.arq.count == 0) { | ||
891 | i40e_debug(hw, I40E_DEBUG_AQ_MESSAGE, | ||
892 | "AQRX: Admin queue not initialized.\n"); | ||
893 | ret_code = I40E_ERR_QUEUE_EMPTY; | ||
894 | goto clean_arq_element_err; | ||
895 | } | ||
896 | |||
890 | /* set next_to_use to head */ | 897 | /* set next_to_use to head */ |
891 | ntu = (rd32(hw, hw->aq.arq.head) & I40E_VF_ARQH1_ARQH_MASK); | 898 | ntu = (rd32(hw, hw->aq.arq.head) & I40E_VF_ARQH1_ARQH_MASK); |
892 | if (ntu == ntc) { | 899 | if (ntu == ntc) { |
@@ -948,6 +955,8 @@ clean_arq_element_out: | |||
948 | /* Set pending if needed, unlock and return */ | 955 | /* Set pending if needed, unlock and return */ |
949 | if (pending != NULL) | 956 | if (pending != NULL) |
950 | *pending = (ntc > ntu ? hw->aq.arq.count : 0) + (ntu - ntc); | 957 | *pending = (ntc > ntu ? hw->aq.arq.count : 0) + (ntu - ntc); |
958 | |||
959 | clean_arq_element_err: | ||
951 | mutex_unlock(&hw->aq.arq_mutex); | 960 | mutex_unlock(&hw->aq.arq_mutex); |
952 | 961 | ||
953 | return ret_code; | 962 | return ret_code; |