linux/drivers/net/ethernet/intel
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 networking: introduce and use skb_put_data() 2017-06-16 11:48:37 -04:00
e1000e e1000e: add check on e1e_wphy() return value 2017-08-08 17:44:53 -07:00
fm10k net: sched: get rid of struct tc_to_netdev 2017-08-07 09:42:37 -07:00
i40e net: sched: get rid of struct tc_to_netdev 2017-08-07 09:42:37 -07:00
i40evf i40evf: remove unnecessary __packed 2017-07-26 03:25:21 -07:00
igb igb: do not drop PF mailbox lock after read of VF message 2017-08-08 17:52:45 -07:00
igbvf igbvf: Use net_device_stats from struct net_device 2017-04-20 16:32:45 -07:00
ixgb ixgb: Omit private ndo_get_stats function 2017-04-20 16:18:45 -07:00
ixgbe net: sched: get rid of struct tc_to_netdev 2017-08-07 09:42:37 -07:00
ixgbevf ixgbevf: Bump version number 2017-06-13 16:11:48 -07:00
e100.c net/{mii, smsc}: Make mii_ethtool_get_link_ksettings and smc_netdev_get_ecmd return void 2017-06-05 11:00:42 -04:00
Kconfig i40evf: Add support for Adaptive Virtual Function 2017-06-01 14:30:02 -07:00
Makefile