linux/drivers/net/ethernet/intel/igb
Greg Edwards 46b3bb9b47 igb: do not drop PF mailbox lock after read of VF message
When the PF receives a mailbox message from the VF, it grabs the mailbox
lock, reads the VF message from the mailbox, ACKs the message and drops
the lock.

While the PF is performing the action for the VF message, nothing
prevents another VF message from being posted to the mailbox.  The
current code handles this condition by just dropping any new VF messages
without processing them.  This results in a mailbox timeout in the VM
for posted messages waiting for an ACK, and the VF is reset by the
igbvf_watchdog_task in the VM.

Given the right sequence of VF messages and mailbox timeouts, this
condition can go on ad infinitum.

Modify the PF mailbox read method to take an 'unlock' argument that
optionally leaves the mailbox locked by the PF after reading the VF
message.  This ensures another VF message is not posted to the mailbox
until after the PF has completed processing the VF message and written
its reply.

Signed-off-by: Greg Edwards <gedwards@ddn.com>
Tested-by: Aaron Brown <aaron.f.brown@intel.com>
Signed-off-by: Jeff Kirsher <jeffrey.t.kirsher@intel.com>
2017-08-08 17:52:45 -07:00
..
e1000_82575.c igb: Explicitly select page 0 at initialization 2017-06-06 00:49:20 -07:00
e1000_82575.h igb: support RX flow classification by ethertype 2016-08-18 22:27:48 -07:00
e1000_defines.h igb: Enable reading of wake up packet 2017-04-20 16:32:45 -07:00
e1000_hw.h igb: do not drop PF mailbox lock after read of VF message 2017-08-08 17:52:45 -07:00
e1000_i210.c igb: Fix hw_dbg logging in igb_update_flash_i210 2017-01-06 02:23:22 -08:00
e1000_i210.h igb: Remove GS40G specific defines/functions 2015-12-14 10:20:06 -08:00
e1000_mac.c igb: Realign bad indentation 2017-01-06 02:18:49 -08:00
e1000_mac.h igb: Merge VLVF configuration into igb_vfta_set 2016-02-15 16:36:52 -08:00
e1000_mbx.c igb: do not drop PF mailbox lock after read of VF message 2017-08-08 17:52:45 -07:00
e1000_mbx.h igb: do not drop PF mailbox lock after read of VF message 2017-08-08 17:52:45 -07:00
e1000_nvm.c igb: use BIT() macro or unsigned prefix 2016-05-13 14:39:47 -07:00
e1000_nvm.h igb: Cleanups to change comment style on license headers 2014-04-24 17:26:27 -07:00
e1000_phy.c scripts/spelling.txt: add regsiter -> register spelling mistake 2017-05-08 17:15:13 -07:00
e1000_phy.h igb: use BIT() macro or unsigned prefix 2016-05-13 14:39:47 -07:00
e1000_regs.h igb: correct register comments 2017-01-06 02:18:50 -08:00
igb_ethtool.c igb: Remove useless argument 2017-06-06 01:04:13 -07:00
igb_hwmon.c igb: Cleanups to change comment style on license headers 2014-04-24 17:26:27 -07:00
igb_main.c igb: do not drop PF mailbox lock after read of VF message 2017-08-08 17:52:45 -07:00
igb_ptp.c igb: check for Tx timestamp timeouts during watchdog 2017-06-06 01:03:17 -07:00
igb.h igb: Remove useless argument 2017-06-06 01:04:13 -07:00
Makefile