ice: restore VF MSI-X state during PCI reset
authorNick Nunley <nicholas.d.nunley@intel.com>
Mon, 13 Jul 2020 20:53:07 +0000 (13:53 -0700)
committerTony Nguyen <anthony.l.nguyen@intel.com>
Wed, 29 Jul 2020 15:38:55 +0000 (08:38 -0700)
commita54a0b24f4f5a361abaf1c0e6591c57816d4cfa7
tree111d1ed6d2bbc8d8f5f6472ddbf749e5b431e3b7
parent0ce6c34a8f6f5b63c9ed5f2ee9be52ece1428350
ice: restore VF MSI-X state during PCI reset

During a PCI FLR the MSI-X Enable flag in the VF PCI MSI-X capability
register will be cleared. This can lead to issues when a VF is
assigned to a VM because in these cases the VF driver receives no
indication of the PF PCI error/reset and additionally it is incapable
of restoring the cleared flag in the hypervisor configuration space
without fully reinitializing the driver interrupt functionality.

Since the VF driver is unable to easily resolve this condition on its own,
restore the VF MSI-X flag during the PF PCI reset handling.

Signed-off-by: Nick Nunley <nicholas.d.nunley@intel.com>
Tested-by: Andrew Bowers <andrewx.bowers@intel.com>
Signed-off-by: Tony Nguyen <anthony.l.nguyen@intel.com>
drivers/net/ethernet/intel/ice/ice_main.c
drivers/net/ethernet/intel/ice/ice_virtchnl_pf.c
drivers/net/ethernet/intel/ice/ice_virtchnl_pf.h