numam-dpdk/drivers
Rasesh Mody 4be18885d1 net/qede/base: avoid possible race condition
There's a possible race in multiple VF scenarios for base driver users
that use the optional APIs ecore_iov_pf_get_and_clear_pending_events,
ecore_iov_pf_add_pending_events. If the client doesn't synchronize the two
calls, it's possible for the PF to clear a VF pending message indication
without ever getting it [as 'get & clear' isn't atomic], leading to VF
timeout on the command.

The solution is to switch into a per-VF indication rather than having a
bitfield for the various VFs with pending events. As part of the solution,
the setting/clearing of the indications is done internally by base driver.
As a result, ecore_iov_pf_add_pending_events is no longer needed and
ecore_iov_pf_get_and_clear_pending_events loses the 'and_clear' from its
name as its now a proper getter.

A VF would be considered 'pending' [I.e., get_pending_events() should
have '1' for it in its bitfield] beginning with the PF's base driver
recognizing a message sent by that VF [in SP_DPC] and ending only when
that VF message is processed.

Signed-off-by: Rasesh Mody <rasesh.mody@cavium.com>
2017-10-06 02:49:49 +02:00
..
bus bus/fslmc: update MC to 10.3.x 2017-10-06 01:26:00 +02:00
crypto bus/fslmc: update MC to 10.3.x 2017-10-06 01:26:00 +02:00
event drivers: refactor DPAA2 object definition 2017-10-06 01:08:46 +02:00
mempool mempool/dpaa2: fix freeing bp list 2017-07-21 09:28:22 +03:00
net net/qede/base: avoid possible race condition 2017-10-06 02:49:49 +02:00
Makefile drivers: add bus dependency for eventdev 2017-07-07 09:24:29 +02:00