numam-dpdk/drivers/net
Yuanhan Liu 6d890f8ab5 net/virtio: fix multiple process support
The introduce of virtio 1.0 support brings yet another set of ops, badly,
it's not handled correctly, that it breaks the multiple process support.

The issue is the data/function pointer may vary from different processes,
and the old used to do one time set (for primary process only). That
said, the function pointer the secondary process saw is actually from the
primary process space. Accessing it could likely result to a crash.

Kudos to the last patches, we now be able to maintain those info that may
vary among different process locally, meaning every process could have its
own copy for each of them, with the correct value set. And this is what
this patch does:

- remap the PCI (IO port for legacy device and memory map for modern
  device)

- set vtpci_ops correctly

After that, multiple process would work like a charm. (At least, it
passed my fuzzy test)

Fixes: b8f04520ad ("virtio: use PCI ioport API")
Fixes: d5bbeefca8 ("virtio: introduce PCI implementation structure")
Fixes: 6ba1f63b5a ("virtio: support specification 1.0")
Cc: stable@dpdk.org

Reported-by: Juho Snellman <jsnell@iki.fi>
Reported-by: Yaron Illouz <yaroni@radcom.com>
Signed-off-by: Yuanhan Liu <yuanhan.liu@linux.intel.com>
2017-01-17 09:20:18 +01:00
..
af_packet drivers: remove useless reset of PCI device pointer 2016-12-24 18:47:19 +01:00
bnx2x ethdev: fix extended statistics name index 2017-01-04 19:04:30 +01:00
bnxt pci: separate detaching ethernet ports from PCI devices 2017-01-12 15:48:54 +01:00
bonding ethdev: decouple from PCI device 2016-12-25 23:30:19 +01:00
cxgbe ethdev: decouple from PCI device 2016-12-25 23:30:19 +01:00
e1000 pci: separate detaching ethernet ports from PCI devices 2017-01-12 15:48:54 +01:00
ena net/ena: add Tx preparation 2017-01-04 20:40:26 +01:00
enic ethdev: decouple from PCI device 2016-12-25 23:30:19 +01:00
fm10k pci: separate detaching ethernet ports from PCI devices 2017-01-12 15:48:54 +01:00
i40e pci: separate detaching ethernet ports from PCI devices 2017-01-12 15:48:54 +01:00
ixgbe net/ixgbe: add MACsec offload 2017-01-15 19:16:37 +01:00
mlx4 scripts: move to buildtools 2017-01-04 21:17:32 +01:00
mlx5 scripts: move to buildtools 2017-01-04 21:17:32 +01:00
mpipe ethdev: clear data when allocating device 2016-12-21 17:30:27 +01:00
nfp pci: separate detaching ethernet ports from PCI devices 2017-01-12 15:48:54 +01:00
null drivers: remove useless reset of PCI device pointer 2016-12-24 18:47:19 +01:00
pcap drivers: remove useless reset of PCI device pointer 2016-12-24 18:47:19 +01:00
qede ethdev: fix extended statistics name index 2017-01-04 19:04:30 +01:00
ring drivers: remove useless reset of PCI device pointer 2016-12-24 18:47:19 +01:00
szedata2 ethdev: decouple from PCI device 2016-12-25 23:30:19 +01:00
thunderx ethdev: decouple from PCI device 2016-12-25 23:30:19 +01:00
vhost net/vhost: emulate device start/stop behavior 2017-01-17 09:20:18 +01:00
virtio net/virtio: fix multiple process support 2017-01-17 09:20:18 +01:00
vmxnet3 pci: separate detaching ethernet ports from PCI devices 2017-01-12 15:48:54 +01:00
xenvirt pci: separate detaching ethernet ports from PCI devices 2017-01-12 15:48:54 +01:00
Makefile net/thunderx: add PMD skeleton 2016-06-20 17:21:54 +02:00