From: Shannon Nelson Date: Tue, 3 Jun 2014 23:50:19 +0000 (+0000) Subject: i40e: keep service tasks out of reset process X-Git-Tag: v3.17-rc1~106^2~276^2~4 X-Git-Url: https://git.karo-electronics.de/?a=commitdiff_plain;h=e57a2fea8787dffcbdff3f7f0567a1e8555dd93a;p=karo-tx-linux.git 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 Signed-off-by: Jeff Kirsher --- diff --git a/drivers/net/ethernet/intel/i40e/i40e_main.c b/drivers/net/ethernet/intel/i40e/i40e_main.c index 394253e03e7a..ebbf37bc367e 100644 --- a/drivers/net/ethernet/intel/i40e/i40e_main.c +++ b/drivers/net/ethernet/intel/i40e/i40e_main.c @@ -5961,6 +5961,12 @@ static void i40e_service_task(struct work_struct *work) service_task); 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_handle_mdd_event(pf); i40e_vc_process_vflr_event(pf);