The patch fixes an issue where repeated EEH reports with a single error on the bus of Intel X710 4-port 10G Base-T adapter in the MSI domain causes the device to be permanently disabled. It fully resets and restarts the device when handling the PCI EEH error.
Two new functions, i40e_io_suspend() and i40e_io_resume(), have been introduced. These functions were factored out from the existing i40e_suspend() and i40e_resume() respectively. This factoring was done due to concerns about the logic of the I40E_SUSPENSED state, which caused the device not able to recover. The functions are now used in the EEH handling for device suspend/resume callbacks. - In the PCI error detected callback, replaced i40e_prep_for_reset() with i40e_io_suspend(). The change is to fully suspend all I/O operations - In the PCI error slot reset callback, replaced pci_enable_device_mem() with pci_enable_device(). This change enables both I/O and memory of the device. - In the PCI error resume callback, replaced i40e_handle_reset_warning() with i40e_io_resume(). This change allows the system to resume I/O operations v2: fixed typos and split into two commits Thinh Tran (2): i40e: fractoring out i40e_suspend/i40e_resume i40e: Fully suspend and resume IO operations in EEH case drivers/net/ethernet/intel/i40e/i40e_main.c | 257 +++++++++++--------- 1 file changed, 140 insertions(+), 117 deletions(-) -- 2.25.1