linux/drivers/net/ethernet/qlogic/qed
Mintz, Yuval fd3c615ae1 qed: Fix race with multiple VFs
A PF syncronizes all IOV activity relating to its VFs
by using a single workqueue handling the work.
The workqueue would reach a bitmask of pending VF events
and act upon each in turn.

Problem is that the indication of a VF message [which sets
the 'vf event' bit for that VF] arrives and is set in
the slowpath attention context, which isn't syncronized with
the processing of the events.
When multiple VFs are present, it's possible that PF would
lose the indication of one of the VF's pending evens, leading
that VF to later timeout.

Instead of adding locks/barriers, simply move from a bitmask
into a per-VF indication inside that VF entry in the PF database.

Signed-off-by: Yuval Mintz <Yuval.Mintz@cavium.com>
Signed-off-by: David S. Miller <davem@davemloft.net>
2017-02-27 09:22:09 -05:00
..
Makefile qed: Add support for hardware offloaded FCoE. 2017-02-19 18:10:42 -05:00
qed_cxt.c qed: Add support for hardware offloaded FCoE. 2017-02-19 18:10:42 -05:00
qed_cxt.h qed: Add support for hardware offloaded FCoE. 2017-02-19 18:10:42 -05:00
qed_dcbx.c qed: Add support for hardware offloaded FCoE. 2017-02-19 18:10:42 -05:00
qed_dcbx.h qed: Add support for hardware offloaded FCoE. 2017-02-19 18:10:42 -05:00
qed_debug.c qed: Additional work toward cleaning C=1 2016-10-14 11:07:22 -04:00
qed_debug.h qed: Add support for debug data collection 2016-09-07 17:46:59 -07:00
qed_dev_api.h qed: Add support for hardware offloaded FCoE. 2017-02-19 18:10:42 -05:00
qed_dev.c qed: Reserve doorbell BAR space for present CPUs 2017-02-20 17:11:54 -05:00
qed_fcoe.c qed: Add support for hardware offloaded FCoE. 2017-02-19 18:10:42 -05:00
qed_fcoe.h qed: Add support for hardware offloaded FCoE. 2017-02-19 18:10:42 -05:00
qed_hsi.h qed: Add support for hardware offloaded FCoE. 2017-02-19 18:10:42 -05:00
qed_hw.c qed: Add support for hardware offloaded FCoE. 2017-02-19 18:10:42 -05:00
qed_hw.h qed*: Update to dual-license 2017-01-01 21:02:14 -05:00
qed_init_fw_funcs.c qed*: Update to dual-license 2017-01-01 21:02:14 -05:00
qed_init_ops.c qed*: Update to dual-license 2017-01-01 21:02:14 -05:00
qed_init_ops.h qed*: Update to dual-license 2017-01-01 21:02:14 -05:00
qed_int.c qed*: Update to dual-license 2017-01-01 21:02:14 -05:00
qed_int.h qed*: Update to dual-license 2017-01-01 21:02:14 -05:00
qed_iscsi.c qed*: Update to dual-license 2017-01-01 21:02:14 -05:00
qed_iscsi.h qed*: Update to dual-license 2017-01-01 21:02:14 -05:00
qed_l2.c qed: Add infrastructure for PTP support 2017-02-15 12:42:52 -05:00
qed_l2.h qed: Add infrastructure for PTP support 2017-02-15 12:42:52 -05:00
qed_ll2.c qed: Add support for hardware offloaded FCoE. 2017-02-19 18:10:42 -05:00
qed_ll2.h qed: Add support for hardware offloaded FCoE. 2017-02-19 18:10:42 -05:00
qed_main.c qed*: Fix link indication race 2017-02-20 17:11:54 -05:00
qed_mcp.c qed*: Fix link indication race 2017-02-20 17:11:54 -05:00
qed_mcp.h qed*: Fix link indication race 2017-02-20 17:11:54 -05:00
qed_ooo.c qed*: Update to dual-license 2017-01-01 21:02:14 -05:00
qed_ooo.h qed*: Update to dual-license 2017-01-01 21:02:14 -05:00
qed_ptp.c qed: Add infrastructure for PTP support 2017-02-15 12:42:52 -05:00
qed_ptp.h qed: Add infrastructure for PTP support 2017-02-15 12:42:52 -05:00
qed_reg_addr.h qed: Add support for hardware offloaded FCoE. 2017-02-19 18:10:42 -05:00
qed_roce.c qed: Don't free a QP more than once 2017-02-20 17:11:54 -05:00
qed_roce.h qed*: Update to dual-license 2017-01-01 21:02:14 -05:00
qed_selftest.c qed*: Update to dual-license 2017-01-01 21:02:14 -05:00
qed_selftest.h qed: Add nvram selftest 2016-10-31 15:52:35 -04:00
qed_sp_commands.c qed: Add support for hardware offloaded FCoE. 2017-02-19 18:10:42 -05:00
qed_sp.h qed: Add support for hardware offloaded FCoE. 2017-02-19 18:10:42 -05:00
qed_spq.c qed*: Update to dual-license 2017-01-01 21:02:14 -05:00
qed_sriov.c qed: Fix race with multiple VFs 2017-02-27 09:22:09 -05:00
qed_sriov.h qed: Fix race with multiple VFs 2017-02-27 09:22:09 -05:00
qed_vf.c qed*: Fix link indication race 2017-02-20 17:11:54 -05:00
qed_vf.h qed*: Update to dual-license 2017-01-01 21:02:14 -05:00
qed.h qed: Add support for hardware offloaded FCoE. 2017-02-19 18:10:42 -05:00