i40e: re-enable VFLR interrupt sooner
authorMitch Williams <mitch.a.williams@intel.com>
Tue, 11 Nov 2014 03:15:04 +0000 (03:15 +0000)
committerJeff Kirsher <jeffrey.t.kirsher@intel.com>
Tue, 18 Nov 2014 09:08:33 +0000 (01:08 -0800)
commitc5c2f7c360af164448d87cb618af2ee5dad3a01a
treef4480eb400f19d12258c5a07bf88f7b4918c77e4
parente684fa34c3a28b4893d43629a02a765a2a71e63e
i40e: re-enable VFLR interrupt sooner

VF interrupt processing takes a looooong time, and it's possible that we
could lose a VFLR event if it happens while we're processing a VFLR on
another VF. This would leave the VF in a semi-permanent reset state,
which would not be cleared until yet another VF experiences a VFLR.

To correct this situation, we enable the VFLR interrupt cause before we
begin processing any pending resets. This means that any VFLR that
occurs during reset processing will generate another interrupt and this
routine will get called again.

This change may cause a spurious interrupt when multiple VFLRs occur
very close together in time. If this happens, then this routine will be
called again and it will detect no outstanding VFLR events and do
nothing. No harm, no foul.

Change-ID: Id0451f3e6e73a2cf6db1668296c71e129b59dc19
Signed-off-by: Mitch Williams <mitch.a.williams@intel.com>
Signed-off-by: Jeff Kirsher <jeffrey.t.kirsher@intel.com>
drivers/net/ethernet/intel/i40e/i40e_virtchnl_pf.c