numam-dpdk/lib
Darek Stojaczyk d27eed3139 eal: fix multi-process hotplug if already probed
When primary process receives an IPC attach request
of a device that's already locally-attached, it
doesn't setup its variables properly and is prone to
segfaulting on a subsequent rollback.

`ret = local_dev_probe(req->devargs, &dev)`

The above function will set `dev` pointer to the
proper device *unless* it returns with error. One of
those errors is -EEXIST, which the hotplug function
explicitly ignores. For -EEXIST, it proceeds with
attaching the device and expects the dev pointer to
be valid.

This patch makes `local_dev_probe` set the dev pointer
even if it returns -EEXIST.

Fixes: ac9e4a1737 ("eal: support attach/detach shared device from secondary")

Signed-off-by: Darek Stojaczyk <dariusz.stojaczyk@intel.com>
2018-11-25 13:22:51 +01:00
..
librte_acl lib: fix shifting 32-bit signed variable 31 times 2018-11-06 01:14:05 +01:00
librte_bbdev remove useless constructor headers 2018-07-12 00:00:35 +02:00
librte_bitratestats bitrate: add sanity check on parameters 2018-07-26 20:07:57 +02:00
librte_bpf bpf: fix x86 JIT for immediate loads 2018-11-13 23:18:53 +01:00
librte_cfgfile build: replace license text with SPDX tag 2018-01-30 21:58:59 +01:00
librte_cmdline ethdev: support MAC address as iterator filter 2018-10-26 22:14:06 +02:00
librte_compat buildtools: change license to SPDX 2018-07-26 22:45:17 +02:00
librte_compressdev compressdev: fix op allocation 2018-11-02 12:25:39 +01:00
librte_cryptodev lib: reduce global variable usage 2018-10-29 02:34:27 +01:00
librte_distributor build: set compat lib as universal dependency 2018-01-30 21:59:00 +01:00
librte_eal eal: fix multi-process hotplug if already probed 2018-11-25 13:22:51 +01:00
librte_efd efd: fix write unlock during ring creation 2018-11-18 15:46:02 +01:00
librte_ethdev ethdev: remove unused deferred device state 2018-11-21 16:11:14 +01:00
librte_eventdev eventdev: fix unlock in Rx adapter 2018-11-23 02:03:33 +01:00
librte_flow_classify flow_classify: do not check for invalid socket ID 2018-10-11 10:37:45 +02:00
librte_gro build: replace license text with SPDX tag 2018-01-30 21:58:59 +01:00
librte_gso gso: support UDP/IPv4 fragmentation 2018-07-11 23:45:20 +02:00
librte_hash hash: fix TSX aborts with newer gcc 2018-11-14 01:02:07 +01:00
librte_ip_frag ip_frag: use key length for key comparison 2018-11-06 01:58:11 +01:00
librte_jobstats build: replace license text with SPDX tag 2018-01-30 21:58:59 +01:00
librte_kni kni: fix possible uninitialized variable 2018-11-23 01:43:35 +01:00
librte_kvargs kvargs: support list value 2018-10-26 22:14:06 +02:00
librte_latencystats latency: fix timestamp marking and latency calculation 2018-10-25 10:30:13 +02:00
librte_lpm lpm6: add incremental update on delete 2018-09-19 17:11:37 +02:00
librte_mbuf ethdev: support metadata as flow rule criteria 2018-10-26 22:14:05 +02:00
librte_member remove useless constructor headers 2018-07-12 00:00:35 +02:00
librte_mempool malloc: add function to check if socket is external 2018-10-11 11:11:25 +02:00
librte_meter meter: remove experimental tag from profile API 2018-08-06 01:15:11 +02:00
librte_metrics metrics: disallow null as metric name 2018-07-26 20:30:18 +02:00
librte_net lib: fix shifting 32-bit signed variable 31 times 2018-11-06 01:14:05 +01:00
librte_pci pci: fix parsing of address without function number 2018-11-13 17:59:42 +01:00
librte_pdump mk: build with _GNU_SOURCE defined by default 2018-10-22 11:28:27 +02:00
librte_pipeline pipeline: fix logically dead code 2018-11-12 17:45:23 +01:00
librte_port port: add symmetric crypto 2018-10-12 19:33:02 +02:00
librte_power power: fix traffic aware build 2018-10-26 14:51:36 +02:00
librte_rawdev lib: reduce global variable usage 2018-10-29 02:34:27 +01:00
librte_reorder build: replace license text with SPDX tag 2018-01-30 21:58:59 +01:00
librte_ring ring/c11: relax ordering for load and store of the head 2018-11-13 17:00:58 +01:00
librte_sched mk: build with _GNU_SOURCE defined by default 2018-10-22 11:28:27 +02:00
librte_security security: restore experimental tag for unimplemented APIs 2018-11-23 02:03:33 +01:00
librte_table lib/librte_table: add hash function headers 2018-10-12 17:58:53 +02:00
librte_telemetry build: add dependency on telemetry to apps with meson 2018-10-27 15:21:33 +02:00
librte_timer eal: make semantics of lcore role function more intuitive 2018-04-26 16:58:18 +02:00
librte_vhost vhost: fix packed ring constants declaration 2018-11-22 23:06:26 +01:00
Makefile telemetry: introduce infrastructure 2018-10-27 15:18:20 +02:00
meson.build build: change default driver installation directory 2018-10-27 23:22:12 +02:00