numam-dpdk/drivers/bus/pci
Darek Stojaczyk 047e3f9f2a vfio: do not needlessly setup device in secondary process
Setting up a device that wasn't setup in the primary
process will possibly break the primary process. That's
because the IPC message to retrieve the group fd in the
primary will also *open* that group if it wasn't opened
before. Even though the secondary process closes that fd
soon after as a part of its error handling path, the
primary process leaks it.

What's worse, opening that fd on the primary will
increment the process-local counter of opened groups.
If it was 0 before, then the group will never be added
to the vfio container, nor dpdk memory will be ever
mapped.

This patch moves the proper error checks earlier in the
code to fully prevent setting up devices in secondary
processes that weren't setup in the primary process.

Fixes: 2f4adfad0a ("vfio: add multiprocess support")

Signed-off-by: Darek Stojaczyk <dariusz.stojaczyk@intel.com>
Acked-by: Anatoly Burakov <anatoly.burakov@intel.com>
Reviewed-by: Maxime Coquelin <maxime.coquelin@redhat.com>
2018-11-25 13:09:05 +01:00
..
bsd bus/pci: harmonize return value of config read 2018-10-29 00:32:14 +01:00
linux vfio: do not needlessly setup device in secondary process 2018-11-25 13:09:05 +01:00
Makefile eal: add bus pointer in device structure 2018-10-11 14:09:24 +02:00
meson.build mk: build with _GNU_SOURCE defined by default 2018-10-22 11:28:27 +02:00
pci_common_uio.c bus/pci: support hot-unplug handler 2018-10-15 22:16:48 +02:00
pci_common.c bus/pci: propagate probing error codes 2018-10-29 01:59:48 +01:00
pci_params.c devargs: rename enum items with singular form 2018-10-11 13:57:29 +02:00
private.h bus/pci: support hot-unplug handler 2018-10-15 22:16:48 +02:00
rte_bus_pci_version.map bus/pci: fix namespace of sysfs path function 2017-11-07 00:44:10 +01:00
rte_bus_pci.h bus/pci: harmonize return value of config read 2018-10-29 00:32:14 +01:00