]> www.infradead.org Git - users/jedix/linux-maple.git/commitdiff
i40e: suspend scheduling during driver unload
authorPandi Kumar Maharajan <pandi.maharajan@intel.com>
Thu, 18 Feb 2016 17:19:25 +0000 (09:19 -0800)
committerChuck Anderson <chuck.anderson@oracle.com>
Thu, 10 Mar 2016 16:39:07 +0000 (08:39 -0800)
Orabug: 22342532

We need to suspend scheduling or any pending service task during driver
unload process, so that new task will not be scheduled. This patch sets
the suspend flag bit during reload which avoids service task execution.

Change-ID: I017c57b5d6656564556e3c5387da671369a572ac
Signed-off-by: Pandi Kumar Maharajan <pandi.maharajan@intel.com>
Tested-by: Andrew Bowers <andrewx.bowers@intel.com>
Signed-off-by: Jeff Kirsher <jeffrey.t.kirsher@intel.com>
(cherry picked from commit a4618ec88de95a86f290d01c74c506552f1a5d95)
Signed-off-by: Brian Maly <brian.maly@oracle.com>
drivers/net/ethernet/intel/i40e/i40e_main.c

index 64d81d965872d4d285542524999f9317d9a02799..6c2b565e9de787f4443cf5bfbd9e5bf8eb85b701 100644 (file)
@@ -11075,6 +11075,7 @@ static void i40e_remove(struct pci_dev *pdev)
        i40e_write_rx_ctl(hw, I40E_PFQF_HENA(1), 0);
 
        /* no more scheduling of any task */
+       set_bit(__I40E_SUSPENDED, &pf->state);
        set_bit(__I40E_DOWN, &pf->state);
        del_timer_sync(&pf->service_timer);
        cancel_work_sync(&pf->service_task);