浏览代码

i40e: keep service tasks out of reset process

Make sure the service tasks don't try to meddle with the
device while a reset is in progress.  Odd things can happen
such as funky stats values.

Change-ID: I6929cb9d6d96839c9279362ca7c0e3fe6c8fcc66
Signed-off-by: Shannon Nelson <shannon.nelson@intel.com>
Signed-off-by: Jeff Kirsher <jeffrey.t.kirsher@intel.com>
Shannon Nelson 11 年之前
父节点
当前提交
e57a2fea87
共有 1 个文件被更改,包括 6 次插入0 次删除
  1. 6 0
      drivers/net/ethernet/intel/i40e/i40e_main.c

+ 6 - 0
drivers/net/ethernet/intel/i40e/i40e_main.c

@@ -5961,6 +5961,12 @@ static void i40e_service_task(struct work_struct *work)
 					  service_task);
 					  service_task);
 	unsigned long start_time = jiffies;
 	unsigned long start_time = jiffies;
 
 
+	/* don't bother with service tasks if a reset is in progress */
+	if (test_bit(__I40E_RESET_RECOVERY_PENDING, &pf->state)) {
+		i40e_service_event_complete(pf);
+		return;
+	}
+
 	i40e_reset_subtask(pf);
 	i40e_reset_subtask(pf);
 	i40e_handle_mdd_event(pf);
 	i40e_handle_mdd_event(pf);
 	i40e_vc_process_vflr_event(pf);
 	i40e_vc_process_vflr_event(pf);