linux_dsm_epyc7002/drivers/net/ethernet/intel
Mauro S M Rodrigues b212d815e7 ixgbe/ixgbevf: Free IRQ when PCI error recovery removes the device
Since commit f7f37e7ff2 ("ixgbe: handle close/suspend race with
netif_device_detach/present") ixgbe_close_suspend is called, from
ixgbe_close, only if the device is present, i.e. if it isn't detached.
That exposed a situation where IRQs weren't freed if a PCI error
recovery system opts to remove the device. For such case the pci channel
state is set to pci_channel_io_perm_failure and ixgbe_io_error_detected
was returning PCI_ERS_RESULT_DISCONNECT before calling
ixgbe_close_suspend consequentially not freeing IRQ and crashing when
the remove handler calls pci_disable_device, hitting a BUG_ON at
free_msi_irqs, which asserts that there is no non-free IRQ associated
with the device to be removed:

BUG_ON(irq_has_action(entry->irq + i));

The issue is fixed by calling the ixgbe_close_suspend before evaluate
the pci channel state.

Reported-by: Naresh Bannoth <nbannoth@in.ibm.com>
Reported-by: Abdul Haleem <abdhalee@in.ibm.com>
Signed-off-by: Mauro S M Rodrigues <maurosr@linux.vnet.ibm.com>
Reviewed-by: Alexander Duyck <alexander.h.duyck@intel.com>
Tested-by: Andrew Bowers <andrewx.bowers@intel.com>
Signed-off-by: Jeff Kirsher <jeffrey.t.kirsher@intel.com>
2018-05-17 09:00:54 -07:00
..
e1000 net: intel: Cleanup the copyright/license headers 2018-04-27 14:00:04 -04:00
e1000e net: intel: Cleanup the copyright/license headers 2018-04-27 14:00:04 -04:00
fm10k fm10k: don't protect fm10k_queue_mac_request by fm10k_host_mbx_ready 2018-05-09 09:02:48 -07:00
i40e i40evf: Fix a hardware reset support in VF driver 2018-05-14 07:05:16 -07:00
i40evf i40evf: Fix a hardware reset support in VF driver 2018-05-14 07:05:16 -07:00
ice ice: Set rq_last_status when cleaning rq 2018-05-11 11:43:17 -07:00
igb net: intel: Cleanup the copyright/license headers 2018-04-27 14:00:04 -04:00
igbvf net: intel: Cleanup the copyright/license headers 2018-04-27 14:00:04 -04:00
ixgb net: intel: Cleanup the copyright/license headers 2018-04-27 14:00:04 -04:00
ixgbe ixgbe/ixgbevf: Free IRQ when PCI error recovery removes the device 2018-05-17 09:00:54 -07:00
ixgbevf ixgbe/ixgbevf: Free IRQ when PCI error recovery removes the device 2018-05-17 09:00:54 -07:00
e100.c net: intel: Cleanup the copyright/license headers 2018-04-27 14:00:04 -04:00
Kconfig ice: Add basic driver framework for Intel(R) E800 Series 2018-03-26 08:28:02 -07:00
Makefile ice: Add basic driver framework for Intel(R) E800 Series 2018-03-26 08:28:02 -07:00