linux/drivers/net/ethernet/intel/ixgbe
Ross Lagerwall 96d1a73161 ixgbe: Fix race when the VF driver does a reset
When the VF driver does a reset, it (at least the Linux one) writes to
the VFCTRL register to issue a reset and then immediately sends a reset
message using the mailbox API. This is racy because when the PF driver
detects that the VFCTRL register reset pin has been asserted, it clears
the mailbox memory. Depending on ordering, the reset message sent by
the VF could be cleared by the PF driver. It then responds to the
cleared message with a NACK which causes the VF driver to malfunction.
Fix this by deferring clearing the mailbox memory until the reset
message is received.

Fixes: 939b701ad6 ("ixgbe: fix driver behaviour after issuing VFLR")
Signed-off-by: Ross Lagerwall <ross.lagerwall@citrix.com>
Tested-by: Andrew Bowers <andrewx.bowers@intel.com>
Signed-off-by: Jeff Kirsher <jeffrey.t.kirsher@intel.com>
2018-12-12 15:51:50 -08:00
..
ixgbe_82598.c net: intel: Cleanup the copyright/license headers 2018-04-27 14:00:04 -04:00
ixgbe_82599.c ixgbe: cleanup sparse warnings 2018-05-17 08:24:30 -07:00
ixgbe_common.c ixgbe: remove redundant function ixgbe_fw_recovery_mode() 2018-10-03 12:28:04 -07:00
ixgbe_common.h net: intel: Cleanup the copyright/license headers 2018-04-27 14:00:04 -04:00
ixgbe_dcb_82598.c net: intel: Cleanup the copyright/license headers 2018-04-27 14:00:04 -04:00
ixgbe_dcb_82598.h net: intel: Cleanup the copyright/license headers 2018-04-27 14:00:04 -04:00
ixgbe_dcb_82599.c net: intel: Cleanup the copyright/license headers 2018-04-27 14:00:04 -04:00
ixgbe_dcb_82599.h net: intel: Cleanup the copyright/license headers 2018-04-27 14:00:04 -04:00
ixgbe_dcb_nl.c net: intel: Cleanup the copyright/license headers 2018-04-27 14:00:04 -04:00
ixgbe_dcb.c net: intel: Cleanup the copyright/license headers 2018-04-27 14:00:04 -04:00
ixgbe_dcb.h net: intel: Cleanup the copyright/license headers 2018-04-27 14:00:04 -04:00
ixgbe_debugfs.c ixgbe: introduce a helper to simplify code 2018-06-04 10:21:13 -07:00
ixgbe_ethtool.c ixgbe: add VF IPsec offload enable flag 2018-08-28 14:33:10 -07:00
ixgbe_fcoe.c ixgbe: Replace GFP_ATOMIC with GFP_KERNEL 2018-08-24 08:52:35 -07:00
ixgbe_fcoe.h net: intel: Cleanup the copyright/license headers 2018-04-27 14:00:04 -04:00
ixgbe_ipsec.c ixgbe: fix the return value for unsupported VF offload 2018-08-28 14:33:38 -07:00
ixgbe_ipsec.h ixgbe: add VF IPsec management 2018-08-28 14:33:03 -07:00
ixgbe_lib.c ixgbe: add AF_XDP zero-copy Rx support 2018-10-03 12:51:14 -07:00
ixgbe_main.c ixgbe/ixgbevf: fix XFRM_ALGO dependency 2018-10-31 10:53:15 -07:00
ixgbe_mbx.c net: intel: Cleanup the copyright/license headers 2018-04-27 14:00:04 -04:00
ixgbe_mbx.h ixgbe: add VF IPsec offload request message handling 2018-08-28 14:33:14 -07:00
ixgbe_model.h ixgbe: cleanup sparse warnings 2018-05-17 08:24:30 -07:00
ixgbe_phy.c net: intel: Cleanup the copyright/license headers 2018-04-27 14:00:04 -04:00
ixgbe_phy.h net: intel: Cleanup the copyright/license headers 2018-04-27 14:00:04 -04:00
ixgbe_ptp.c net: intel: Cleanup the copyright/license headers 2018-04-27 14:00:04 -04:00
ixgbe_sriov.c ixgbe: Fix race when the VF driver does a reset 2018-12-12 15:51:50 -08:00
ixgbe_sriov.h net: intel: Cleanup the copyright/license headers 2018-04-27 14:00:04 -04:00
ixgbe_sysfs.c net: intel: Cleanup the copyright/license headers 2018-04-27 14:00:04 -04:00
ixgbe_txrx_common.h ixgbe: add AF_XDP zero-copy Tx support 2018-10-03 12:54:37 -07:00
ixgbe_type.h ixgbe: firmware recovery mode 2018-08-28 12:17:15 -07:00
ixgbe_x540.c net: intel: Cleanup the copyright/license headers 2018-04-27 14:00:04 -04:00
ixgbe_x540.h net: intel: Cleanup the copyright/license headers 2018-04-27 14:00:04 -04:00
ixgbe_x550.c ixgbe: recognize 1000BaseLX SFP modules as 1Gbps 2018-11-28 08:29:49 -08:00
ixgbe_xsk.c ixgbe: add AF_XDP zero-copy Tx support 2018-10-03 12:54:37 -07:00
ixgbe.h ixgbe/ixgbevf: fix XFRM_ALGO dependency 2018-10-31 10:53:15 -07:00
Makefile ixgbe/ixgbevf: fix XFRM_ALGO dependency 2018-10-31 10:53:15 -07:00