aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorAnjali Singhai Jain <anjali.singhai@intel.com>2013-12-21 00:44:44 -0500
committerJeff Kirsher <jeffrey.t.kirsher@intel.com>2014-01-10 19:30:34 -0500
commit3b867b28ceeef2f958937c7ed1121fd6c99fead2 (patch)
tree2cfa744b8929f01457f04726fb46b2a1909e6a98
parent5f90f42298e547cb721196f3d3f882276e338190 (diff)
i40e: do not bail when disabling if Tx queue disable fails
Fix a bug where the driver was erroneously exiting the driver unload path if one part of the unload failed. Instead of the original way the driver should always continue when disabling and be sure to disable all queues. Change-ID: Ib8c81c596bc87c31d8e9ca97ebf871168475279d Signed-off-by: Anjali Singhai Jain <anjali.singhai@intel.com> Signed-off-by: Jesse Brandeburg <jesse.brandeburg@intel.com> Tested-by: Kavindya Deegala <kavindya.s.deegala@intel.com> Signed-off-by: Jeff Kirsher <jeffrey.t.kirsher@intel.com>
-rw-r--r--drivers/net/ethernet/intel/i40e/i40e_main.c9
1 files changed, 4 insertions, 5 deletions
diff --git a/drivers/net/ethernet/intel/i40e/i40e_main.c b/drivers/net/ethernet/intel/i40e/i40e_main.c
index 80c83eb5c6c5..65c27cb1e9ec 100644
--- a/drivers/net/ethernet/intel/i40e/i40e_main.c
+++ b/drivers/net/ethernet/intel/i40e/i40e_main.c
@@ -3113,7 +3113,7 @@ static int i40e_vsi_control_rx(struct i40e_vsi *vsi, bool enable)
3113 **/ 3113 **/
3114int i40e_vsi_control_rings(struct i40e_vsi *vsi, bool request) 3114int i40e_vsi_control_rings(struct i40e_vsi *vsi, bool request)
3115{ 3115{
3116 int ret; 3116 int ret = 0;
3117 3117
3118 /* do rx first for enable and last for disable */ 3118 /* do rx first for enable and last for disable */
3119 if (request) { 3119 if (request) {
@@ -3122,10 +3122,9 @@ int i40e_vsi_control_rings(struct i40e_vsi *vsi, bool request)
3122 return ret; 3122 return ret;
3123 ret = i40e_vsi_control_tx(vsi, request); 3123 ret = i40e_vsi_control_tx(vsi, request);
3124 } else { 3124 } else {
3125 ret = i40e_vsi_control_tx(vsi, request); 3125 /* Ignore return value, we need to shutdown whatever we can */
3126 if (ret) 3126 i40e_vsi_control_tx(vsi, request);
3127 return ret; 3127 i40e_vsi_control_rx(vsi, request);
3128 ret = i40e_vsi_control_rx(vsi, request);
3129 } 3128 }
3130 3129
3131 return ret; 3130 return ret;