numam-dpdk/drivers/net
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
..
af_packet net/af_packet: support Tx scattered mbuf input 2017-10-06 02:49:47 +02:00
ark net/ark: remove empty header file 2017-10-06 02:49:47 +02:00
avp net/avp: remove redundant assignment 2017-06-12 10:41:26 +01:00
bnx2x net/bnx2x: remove unnecessary void casts 2017-10-06 02:49:48 +02:00
bnxt net/bnxt: fix arguments to callback process 2017-07-31 19:58:41 +02:00
bonding net/bonding: fix slaves capacity check 2017-10-06 02:49:48 +02:00
cxgbe net/cxgbe: fix memory leak 2017-10-06 02:49:48 +02:00
dpaa2 bus/fslmc: update MC to 10.3.x 2017-10-06 01:26:00 +02:00
e1000 net/igb: fix memcpy length 2017-10-06 02:49:48 +02:00
ena net/ena/base: initialize memory in the allocation macros 2017-07-06 15:00:57 +02:00
enic net/enic: fix possible null pointer dereference 2017-10-06 02:49:47 +02:00
failsafe net/failsafe: stat support enhancement 2017-10-06 02:49:48 +02:00
fm10k net/fm10k: initialize link status in device start 2017-07-06 15:00:56 +02:00
i40e net/i40e: fix variable assignment 2017-10-06 02:49:48 +02:00
ixgbe net/ixgbe: eliminate duplicate filterlist symbols 2017-10-06 02:49:48 +02:00
kni drivers/net: use device name from device structure 2017-07-06 00:17:02 +02:00
liquidio net/liquidio: fix uninitialized variable 2017-10-06 02:49:48 +02:00
mlx4 net/mlx4: merge interrupt collector function 2017-10-06 02:49:48 +02:00
mlx5 net/mlx5: replace network to host macros 2017-10-06 02:49:48 +02:00
nfp net/nfp: write PF MAC to config BAR 2017-10-06 02:49:48 +02:00
null bus/vdev: remove probe with driver name option 2017-07-10 00:46:38 +02:00
pcap drivers/net: use ethdev allocation helper for vdev 2017-04-18 19:04:49 +02:00
qede net/qede/base: avoid possible race condition 2017-10-06 02:49:49 +02:00
ring net/ring: rename map file to standardized name 2017-08-31 23:03:01 +02:00
sfc net/sfc: free mbufs in bulks on simple EF10 Tx reap 2017-10-06 02:49:48 +02:00
szedata2 net/szedata2: use macro from common library 2017-07-06 15:00:56 +02:00
tap net/tap: fix flow and port commands 2017-10-06 02:49:48 +02:00
thunderx net/thunderx: add device speed capability info 2017-10-06 02:49:48 +02:00
vhost ethdev: add return values to callback process API 2017-07-01 17:19:55 +02:00
virtio net/virtio: fix Rx interrupt setup 2017-07-31 19:16:23 +02:00
vmxnet3 net/vmxnet3: fix MAC address set 2017-10-06 02:49:48 +02:00
xenvirt ethdev: remove driver name from device private data 2017-06-12 16:27:44 +01:00
Makefile net/failsafe: add fail-safe PMD 2017-07-19 16:25:42 +03:00