net/virtio-user: fix multi-process attach
authorAmi Sabo <amis@radware.com>
Thu, 2 Mar 2017 09:00:42 +0000 (11:00 +0200)
committerThomas Monjalon <thomas.monjalon@6wind.com>
Fri, 14 Apr 2017 13:22:49 +0000 (15:22 +0200)
commit727d83ca23115387b6f839d4a351c03afb5d084b
treef55a9bb5309bc61444fa6bf443334c13217066fa
parent942661004cde7677b9a5899e27a57ea883931052
net/virtio-user: fix multi-process attach

Secondary process doesn't properly attach to the rte_eth_device
initialized by the primary process.

Accessing device from secondary process (e.g. via rte_eth_rx_burst),
causes process to crash. because rte_eth_dev_data is not properly set.

The issue was flood by
'commit 7f95f78a8aea ("ethdev: clear data when allocating device")'
which now clears rte_eth_dev_data entry.
For pci devices the struct is initialized by rte_eth_dev_pci_probe
->eth_dev_attach_secondary().
However, for virtio-user virtio_user_pmd_probe() is called instead of
rte_eth_dev_pci_probe().

The fix is to call rte_eth_dev_attach_secondary(), for secondary
process, from virtio_user_pmd_probe.

Fixes: 7f95f78a8aea ("ethdev: clear data when allocating device")
Cc: stable@dpdk.org
Signed-off-by: Ami Sabo <amis@radware.com>
drivers/net/virtio/virtio_user_ethdev.c