]> www.infradead.org Git - users/jedix/linux-maple.git/commit
ixgbevf: handle race between close and suspend on shutdown
authorEmil Tantilov <emil.s.tantilov@intel.com>
Fri, 11 Nov 2016 18:12:51 +0000 (10:12 -0800)
committerJack Vogel <jack.vogel@oracle.com>
Fri, 16 Jun 2017 06:01:22 +0000 (23:01 -0700)
commit4be9f5c549aa8ed9bdbc9d552b441417f71179bf
treeb74b75758e6694fa4ce2bca5e8baf8e788edac2a
parent1355a630bec461627860bbe9558ebc5498f2cdb0
ixgbevf: handle race between close and suspend on shutdown

When an interface is part of a namespace it is possible that
ixgbevf_close() may be called while ixgbevf_suspend() is running
which ends up in a double free WARN and/or a BUG in free_msi_irqs()

To handle this situation we extend the rtnl_lock() to protect the
call to netif_device_detach() and check for !netif_device_present()
to avoid entering close while in suspend.

Also added rtnl locks to ixgbevf_queue_reset_subtask().

CC: Alexander Duyck <alexander.h.duyck@intel.com>
Signed-off-by: Emil Tantilov <emil.s.tantilov@intel.com>
Tested-by: Andrew Bowers <andrewx.bowers@intel.com>
Signed-off-by: Jeff Kirsher <jeffrey.t.kirsher@intel.com>
Orabug: 26242766
(cherry picked from commit 2dad7b2775ea030c898fe4946971edd25af237d1)
Signed-off-by: Jack Vogel <jack.vogel@oracle.com>
Reviewed-by: Ethan Zhao <ethan.zhao@oracle.com>
drivers/net/ethernet/intel/ixgbevf/ixgbevf_main.c