Commit Graph

3437 Commits

Author SHA1 Message Date
Lukasz Majczak
1e0a17ac4c eal: fix auxv open check for ARM and PPC
The assertion of return value from the open() function is done against
0, while it is a correct value - open() returns -1 in case of an error.
It causes problems while trying to run as a daemon, in which case, this
call to open() will return 0 as a valid descriptor.

Fixes: b94e5c9406 ("eal/arm: add CPU flags for ARMv7")
Fixes: 97523f822b ("eal/arm: add CPU flags for ARMv8")
Fixes: 9ae1553856 ("eal/ppc: cpu flag checks for IBM Power")
Cc: stable@dpdk.org

Signed-off-by: Lukasz Majczak <lma@semihalf.com>
Acked-by: Jan Viktorin <viktorin@rehivetech.com>
Acked-by: Chao Zhu <chaozhu@linux.vnet.ibm.com>
2017-10-06 00:15:43 +02:00
Bruce Richardson
016c32bd3e eal: cleanup strerror function
When compiled on Ubuntu with extra warnings enabled, the rte_strerror()
function triggered a warning about an unused return value from
strerror_r(). Rather than always have this warning disabled, we fix this,
and in the process do some cleanup of the code so as to reduce the
complexity of the fix, e.g. not having the #ifdef macros inside the
snprintf call.

Signed-off-by: Bruce Richardson <bruce.richardson@intel.com>
Acked-by: Harry van Haaren <harry.van.haaren@intel.com>
2017-10-05 23:54:39 +02:00
Kuba Kozak
96128b365e vfio: fix close unchecked file descriptor
Add file descriptor value check before calling close() function.

Coverity issue: 141297
Fixes: 811b6b2506 ("vfio: fix file descriptor leak in multi-process")
Cc: stable@dpdk.org

Signed-off-by: Kuba Kozak <kubax.kozak@intel.com>
Acked-by: Anatoly Burakov <anatoly.burakov@intel.com>
Acked-by: Patrick MacArthur <patrick@patrickmacarthur.net>
2017-10-05 23:41:42 +02:00
Chas Williams
0c57f40e66 hash: document jhash boundary behavior
Due to the uint32_t accesses in the hash computation, keys that aren't
aligned to a uint32_t boundary or multiples of uint32_t in length, may
see accesses beyond the end of the key.  This may cross a page boundary.

Signed-off-by: Chas Williams <chas3@att.com>
Acked-by: Luca Boccassi <bluca@debian.org>
Acked-by: John McNamara <john.mcnamara@intel.com>
2017-10-05 23:37:52 +02:00
Olivier Matz
b081c1dd2e net: fix inner L2 length in packet type parser
The inner L2 length returned by rte_net_get_ptype() is not
properly initialized. If the caller does not zero the header
lengths structure, the inner_l2 field will be undefined.

Fix it by initializing inner_l2 to 0 when parsing a inner layer.

Fixes: 2c15c5377d ("net: support NVGRE in software packet type parser")
Cc: stable@dpdk.org

Signed-off-by: Olivier Matz <olivier.matz@6wind.com>
2017-10-05 23:34:45 +02:00
Olivier Matz
72ca23c1ce ring: increase maximum ring size
There is no reason to prevent ring from being larger than 0x0FFFFFFF.
Increase the maximum size to 0x7FFFFFFF, which is the maximum possible
without changing the code and the structure definition (size is stored
on a uint32_t).

Link: http://dpdk.org/ml/archives/dev/2017-September/074701.html

Suggested-by: Venkatesh Nuthula <venki497@gmail.com>
Signed-off-by: Olivier Matz <olivier.matz@6wind.com>
Reviewed-by: Anatoly Burakov <anatoly.burakov@intel.com>
2017-10-05 23:23:12 +02:00
Bruce Richardson
0a10db80bc cmdline: fix warning for unused return value
When DPDK is compiled on Ubuntu with extra warnings turned on, there is a
warning about the return value from write() being unchecked. Rather than
having builds disable the warning, which may mask other cases we do care
about, we can add a dummy use of the return value in the code to silence it
in this instance.

Signed-off-by: Bruce Richardson <bruce.richardson@intel.com>
Acked-by: Olivier Matz <olivier.matz@6wind.com>
Acked-by: Harry van Haaren <harry.van.haaren@intel.com>
2017-10-05 18:36:07 +02:00
Ferruh Yigit
ccf3160716 ethdev: fix ABI version
The ethdev ABI has been broken in release 17.08 without being bumped.

Fixes: c33ade1227 ("doc: notify ethdev callback process API change")
Cc: stable@dpdk.org

Signed-off-by: Ferruh Yigit <ferruh.yigit@intel.com>
Reviewed-by: Zhiyong Yang <zhiyong.yang@intel.com>
2017-10-04 23:50:59 +02:00
Stephen Hemminger
f0dab530f4 eal: initialize logging before bus
Any log messages during bus initialization maybe lost because
the bus registration constructor is called before the logging constructor.

Fixes: a97725791e ("bus: introduce bus abstraction")
Cc: stable@dpdk.org

Signed-off-by: Stephen Hemminger <sthemmin@microsoft.com>
2017-10-03 11:28:27 +02:00
Thomas Monjalon
53d266ac7b eal: add doc for constructor macros
It is a reminder that the constructors without priority
get the lowest priority.

Signed-off-by: Thomas Monjalon <thomas@monjalon.net>
Reviewed-by: Ferruh Yigit <ferruh.yigit@intel.com>
2017-10-03 11:13:04 +02:00
David Hunt
3b3db6b8bc power: add turbo functions to map file
Fixes: 94608a0f7f ("power: add per-core turbo boost API")

Signed-off-by: David Hunt <david.hunt@intel.com>
2017-10-03 10:46:12 +02:00
Ilia Kurakin
5dce9fcdb2 ethdev: support vtune task tracing
The patch simplifies DPDK applications analysis for developers which use
Intel® VTune Amplifier.

The empty cycles are such iterations that yielded no RX packets. As far as
DPDK is running in poll mode, wasting cycles is equal to wasting CPU time.
Tracing such iterations can identify that device is underutilized. Tracing
empty cycles becomes even more critical if a system uses a lot of Ethernet
ports.

The patch gives possibility to analyze empty cycles without changing
application code. All needs to be done is just to reconfigure and rebuild
the DPDK itself with CONFIG_RTE_ETHDEV_PROFILE_ITT_WASTED_RX_ITERATIONS
enbled. The important thing here is that this does not affect DPDK code.
The profiling code is not being compiled if user does not specify config
flag.

The patch provides common way to inject RX queues profiling and VTune
specific implementation.

Signed-off-by: Ilia Kurakin <ilia.kurakin@intel.com>
Acked-by: Jerin Jacob <jerin.jacob@caviumnetworks.com>
2017-09-22 19:01:32 +02:00
David Hunt
94608a0f7f power: add per-core turbo boost API
Adds a new set of APIs to allow per-core turbo
enable-disable.

Signed-off-by: David Hunt <david.hunt@intel.com>
2017-09-22 16:35:12 +02:00
Yi Yang
ca13673513 service: fix build with gcc 4.9
Some compilers detect this error:

    error: ‘ids[0]’ may be used uninitialized in this function
    ret = rte_service_map_lcore_set(i, ids[lcore_iter], 1);

It can be reproduced very easily on Fedora 21 with
gcc-4.9.2-6.fc21.x86_64.

Fixes: 21698354c8 ("service: introduce service cores concept")
Cc: stable@dpdk.org

Signed-off-by: Yi Yang <yi.y.yang@intel.com>
Acked-by: Harry van Haaren <harry.van.haaren@intel.com>
2017-09-21 14:42:53 +02:00
Guduri Prathyusha
3d2e0448eb cfgfile: add section number of entries by index
rte_cfgfile_section_num_entries_by_index() is added to get the number of
entries of a section when multiple sections of the same name are
present.

Signed-off-by: Guduri Prathyusha <gprathyusha@caviumnetworks.com>
Reviewed-by: Bruce Richardson <bruce.richardson@intel.com>
Acked-by: Bruce Richardson <bruce.richardson@intel.com>
2017-09-15 15:57:04 +02:00
Guduri Prathyusha
aee62e906f service: fix lcore stop
lcore_states store the state of the lcore. Fixing the invalid
dereference of lcore_states with service number

Unit test case service_lcore_start_stop fails with the above fix.
Service core was stopped without stopping the service.

This commit fixes the test by adding negative and positive cases of
stopping the service lcore before and after stopping the service
respectively

Fixes: 21698354c8 ("service: introduce service cores concept")
Fixes: f038a81e1c ("service: add unit tests")

Signed-off-by: Guduri Prathyusha <gprathyusha@caviumnetworks.com>
Reviewed-by: Harry van Haaren <harry.van.haaren@intel.com>
2017-09-15 15:32:48 +02:00
Harry van Haaren
c2150ad4c4 service: clarify documentation for register
This commit adds a section to the service register function
to make it clear that registering a service, must not configure
service-cores (eg: adding lcores or changing mappings).

Signed-off-by: Harry van Haaren <harry.van.haaren@intel.com>
Acked-by: Pavan Nikhilesh <pbhagavatula@caviumnetworks.com>
2017-09-15 13:46:51 +02:00
Harry van Haaren
95fdf37c89 service: add component runstate
This commit adds a new flag that the component (or "backend")
can use to indicate readyness. The service function callback
will not be called until the component sets itself as ready.

The use-case behind adding this feature is eg: a service that
requires configuration before it can start. Any service that
emulates an ethdev will have rte_eth_dev_configure() called,
and only after that the service will know how many queues/etc
to allocate. Once that configuration is complete, the service
marks itself as ready using rte_service_component_runstate_set().

This feature request results from prototyping services, and
requiring a flag in each service to note "internal" readyness.
Instead that logic is now lifted to the service library.

The unit tests have been updated to test the component runstate.

Signed-off-by: Harry van Haaren <harry.van.haaren@intel.com>
Acked-by: Pavan Nikhilesh <pbhagavatula@caviumnetworks.com>
2017-09-15 13:46:47 +02:00
Harry van Haaren
4977b84f99 service: reset core call stats on dump
This aligns with the service stats, which are currently
also reset on read. A generic statistics API would be
helpful for the service library in future.

Signed-off-by: Harry van Haaren <harry.van.haaren@intel.com>
Acked-by: Pavan Nikhilesh <pbhagavatula@caviumnetworks.com>
2017-09-15 13:46:44 +02:00
Harry van Haaren
5ef9209891 service: fix lcore in wait state in lcore add
This commit ensures that after an lcore is added, that
it is in the WAIT state. Previously, adding an lcore did
not ensure that the core was ready for being relaunch, which
would cause errors during lcore_start(). Now that the lcore is
ensured to be in WAIT state by the lcore_add() function, this
is no longer an issue.

Fixes: 21698354c8 ("service: introduce service cores concept")

Signed-off-by: Harry van Haaren <harry.van.haaren@intel.com>
Acked-by: Pavan Nikhilesh <pbhagavatula@caviumnetworks.com>
2017-09-15 13:46:44 +02:00
Harry van Haaren
808f793d74 service: fix return values of functions to 0 or 1
Previously to this commit, the return value of the following
functions was the mask value, instead of a neat 0 or 1.

This commit fixes this using the "!!" trick, to force the
number to 1 instead of the bitmask value itself, bringing
the return value in line with the function documentation.

Fixes: 21698354c8 ("service: introduce service cores concept")

Signed-off-by: Harry van Haaren <harry.van.haaren@intel.com>
Acked-by: Pavan Nikhilesh <pbhagavatula@caviumnetworks.com>
2017-09-15 13:46:43 +02:00
Harry van Haaren
2a9549ca3b service: fix loops to always scan all services
Services can be registered and unregistered, and "holes" can
appear in the contiguous array of services if a service is
unregistered. As a result, we must never iterate to the
number of services (as counted by rte_service_count), instead
scanning the service array and checking if the service is valid.

After this commit, the rte_service_count variable is only used
for its intended purpose; tracking the number of services that
are present.

Fixes: 21698354c8 ("service: introduce service cores concept")

Signed-off-by: Harry van Haaren <harry.van.haaren@intel.com>
Acked-by: Pavan Nikhilesh <pbhagavatula@caviumnetworks.com>
2017-09-15 13:46:41 +02:00
Harry van Haaren
3cf5eb1546 service: fix and refactor atomic service accesses
This commit fixes an issue in the service runner function,
where the atomic value was not cleared on exiting the service
function. This resulted in future attempts to run the service
to appear like the function was running, however it was in
reality deadlocked.

This commit refactors the atomic handling to be more readable,
by splitting the implementation code into a new static inline
function. The remaining flow control of atomics in the existing
function is refactored for readability.

Fixes: 21698354c8 ("service: introduce service cores concept")

Signed-off-by: Harry van Haaren <harry.van.haaren@intel.com>
Acked-by: Pavan Nikhilesh <pbhagavatula@caviumnetworks.com>
2017-09-15 13:46:24 +02:00
Harry van Haaren
8edc9aaaf2 service: use id in get by name function
This commit reworks the service_get_by_name() function to
accept an integer, and removes the service_get_by_id() function.

All functions now accept an integer argument representing the
service, so it is no longer required to expose the service_spec
pointers to the application.

Signed-off-by: Harry van Haaren <harry.van.haaren@intel.com>
Acked-by: Pavan Nikhilesh <pbhagavatula@caviumnetworks.com>
2017-09-15 13:46:13 +02:00
Harry van Haaren
891f07e54e service: use id in unregister
This commit reworks the unregister API to accept an integer.

Signed-off-by: Harry van Haaren <harry.van.haaren@intel.com>
Acked-by: Pavan Nikhilesh <pbhagavatula@caviumnetworks.com>
2017-09-15 13:45:58 +02:00
Harry van Haaren
5a6f6e0d52 service: use id in service stats functions
This commit reworks the statistics functions to use integer ids
for services instead of pointers. Passing UINT32_MAX to the dump
function prints all info, similar to passing NULL previously.

Signed-off-by: Harry van Haaren <harry.van.haaren@intel.com>
Acked-by: Pavan Nikhilesh <pbhagavatula@caviumnetworks.com>
2017-09-15 13:45:48 +02:00
Harry van Haaren
330b341b88 service: use id in runstate function
This commit reworks the API to move from two separate start
and stop functions, to a "runstate" API which allows setting
the runstate. The is_running API is replaced with an function
to query the runstate. The runstate functions take a id value
for service. Unit tests and the eventdev sw pmd are updated.

Signed-off-by: Harry van Haaren <harry.van.haaren@intel.com>
Acked-by: Pavan Nikhilesh <pbhagavatula@caviumnetworks.com>
2017-09-15 13:45:38 +02:00
Harry van Haaren
a894d4815f service: return integer service id from register
This commit reworks the service register function to accept
an extra parameter. The parameter is a uint32_t *, which when
provided will be set to the integer service_id that the newly
registered service is represented by.

This is useful for services that wish to validate settings at
a later point in time - they need to know their own service id.

This commit updates the eventdev sw pmd, as well as unit tests
to use the new register API.

Signed-off-by: Harry van Haaren <harry.van.haaren@intel.com>
Acked-by: Pavan Nikhilesh <pbhagavatula@caviumnetworks.com>
2017-09-15 13:45:17 +02:00
Harry van Haaren
519d2e3b3d service: use id in lcore to service map functions
This commit updates the APIs exposed to map service cores and
services. The previous APIs required a pointer to a service,
and used two separate functions for enable and disable. The
new API uses an integer ID for the service and has a parameter
for map or unmap. Unit tests are updated and passing, and the
map file is updated to the new function names.

Signed-off-by: Harry van Haaren <harry.van.haaren@intel.com>
Acked-by: Pavan Nikhilesh <pbhagavatula@caviumnetworks.com>
2017-09-15 13:45:04 +02:00
Harry van Haaren
6f62f3cf3a service: use id in probe and get name
This commit adds a macro to easily validate a service ID, and then
lookup the service pointer, or return a user-specified error code.
This macro will be heavily used in the following patches as it will
be ID based instead of pointer-based.

The probe_capability function is reworked to use an integer ID instead
of a pointer. Rework the service_get_name() function is updated to use
IDs. Unit tests are updated to keep things compiling after each commit.

Signed-off-by: Harry van Haaren <harry.van.haaren@intel.com>
Acked-by: Pavan Nikhilesh <pbhagavatula@caviumnetworks.com>
2017-09-15 13:44:47 +02:00
Pavan Nikhilesh
9cdbd44ea9 service: add count per lcore
This new API returns the number of services that are running on a specific
service core. It allows an application to decide which service core to run
a new service on.

Signed-off-by: Pavan Nikhilesh <pbhagavatula@caviumnetworks.com>
Acked-by: Harry van Haaren <harry.van.haaren@intel.com>
2017-09-14 18:16:07 +02:00
Wei Dai
514302ff6e ethdev: add NIC reset operation
This patch adds a new eth_dev layer API function rte_eth_dev_reset(),
which a DPDK application can call to reset a NIC and keep its port id
afterwards. It means that all software resources allocated in the ethdev
layer are kept, and software & hardware resources of the NIC within the
NIC's PMD are reset to a state simular to that obtained by calling the
PCI dev_uninit() and then dev_init(). This effective sequence of
dev_uninit() and dev_init() is packed into a single API function
rte_eth_dev_reset().

Please see the comments before the declaration of rte_eht_dev_reset()
in lib/librte_ether/rte_ethdev.h to get more details on why this
function is needed, what it does, when it should be called
and what an application should do after calling this function.
See also detailed explanations in the programmer's guide.

Signed-off-by: Wei Dai <wei.dai@intel.com>
Reviewed-by: Remy Horton <remy.horton@intel.com>
2017-09-13 23:06:44 +02:00
Bruce Richardson
c42021fe56 ethdev: rename map file to match library name
While almost all libraries have the library name match the directory name,
some libraries and drivers do not. For those that don't, some have the
version filename use the libname, e.g. null_crypto, others have it use the
directory name, e.g. ether. Using the library name seems the better
standard to follow, so rename rte_ether_version.map to
rte_ethdev_version.map.

Signed-off-by: Bruce Richardson <bruce.richardson@intel.com>
Reviewed-by: Ferruh Yigit <ferruh.yigit@intel.com>
2017-08-31 23:03:04 +02:00
Bruce Richardson
45a5f79886 ip_frag: rename map file to standardized name
The filenames of the linker map files for DPDK libraries, all follow a
standard format: rte_<libname>_version.map. The ip_frag version, however,
was missing an underscore in the name, so was non-standard. By changing
this, we no longer need the build system to explicitly be given the name of
the mapfile, as it can determine it from the directory/library name.

Signed-off-by: Bruce Richardson <bruce.richardson@intel.com>
Reviewed-by: Ferruh Yigit <ferruh.yigit@intel.com>
2017-08-31 23:02:57 +02:00
Jiayu Hu
6e99ff9e46 gro: fix typo in map file
The names of rte_gro_ctx_create() and rte_gro_ctx_destroy() in
rte_gro_version.map are incorrect. This patch is to fix this issue.

Fixes: e996506a1c ("lib/gro: add Generic Receive Offload API framework")
Cc: stable@dpdk.org

Signed-off-by: Jiayu Hu <jiayu.hu@intel.com>
Reviewed-by: Ferruh Yigit <ferruh.yigit@intel.com>
2017-08-31 23:02:54 +02:00
Thomas Monjalon
85238f501e version: 17.11-rc0
Signed-off-by: Thomas Monjalon <thomas@monjalon.net>
2017-08-10 10:14:46 +02:00
Thomas Monjalon
02657b4adc version: 17.08.0
Signed-off-by: Thomas Monjalon <thomas@monjalon.net>
2017-08-08 20:01:40 +02:00
Jerin Jacob
945081a76a eventdev: bump library version
Bumping the library version to reflect the ABI change, where
rte_event_pmd_pci_probe(), rte_event_pmd_pci_remove(),
rte_event_pmd_vdev_init(), rte_event_pmd_vdev_uninit()
functions removed from the library.

Fixes: b1b3d9f905 ("eventdev: make vdev init and uninit functions optional")
Fixes: 9a8269d569 ("eventdev: make PCI probe and remove functions optional")

Reported-by: Thomas Monjalon <thomas@monjalon.net>
Signed-off-by: Jerin Jacob <jerin.jacob@caviumnetworks.com>
2017-08-08 20:01:39 +02:00
Gaetan Rivet
1667331fbc eal: bump ABI version
1. PCI domain field in PCI address structure grew from 16 to 32 bits.

   commit: 463ced957c ("pci: increase domain storage to 32 bits")

2. rte_bus structure gaining new ops.

   commit: 3a8f0bc68a ("bus: add method to find device")
   commit: 7c8810f43f ("bus: introduce device plug/unplug")
   commit: 609eb7dde6 ("bus: introduce parsing functionality")
   commit: 98eb4b845c ("bus: introduce scan policies")

3. rte_devargs structure having been mostly rewritten.

   commit: f3a1188cee ("devargs: make device representation generic")
   commit: 47828c5f3b ("devargs: parse bus info")
   commit: 39f403e0d5 ("devargs: restore device type API")

Signed-off-by: Gaetan Rivet <gaetan.rivet@6wind.com>
2017-08-08 20:01:39 +02:00
Keith Wiles
57f2141966 mem: minor fix spelling and format
Signed-off-by: Keith Wiles <keith.wiles@intel.com>
2017-08-06 12:38:06 +02:00
Thomas Monjalon
e258d5fe3b gro: fix missing includes
The GRO header file depends on stdint and mbuf.

Spotted with devtools/check-includes.sh

Fixes: e996506a1c ("lib/gro: add Generic Receive Offload API framework")

Signed-off-by: Thomas Monjalon <thomas@monjalon.net>
Acked-by: John McNamara <john.mcnamara@intel.com>
2017-08-05 01:19:13 +02:00
Thomas Monjalon
a1742d172a eventdev: fix missing includes
The PCI helper file depends on some EAL definitions.
Spotted with devtools/check-includes.sh:
	error: implicit declaration of function ‘rte_eal_process_type’
	error: ‘RTE_PROC_PRIMARY’ undeclared
	error: implicit declaration of function ‘rte_socket_id’

There was also this error because the inline keyword was missing:
	error: ‘rte_event_pmd_pci_probe’ defined but not used

Fixes: 9a8269d569 ("eventdev: make PCI probe and remove functions optional")

Signed-off-by: Thomas Monjalon <thomas@monjalon.net>
Acked-by: John McNamara <john.mcnamara@intel.com>
2017-08-05 01:18:21 +02:00
Adrien Mazarguil
c65de52614 cryptodev: fix C11 extensions in exported header
Fix issues reported by check-includes.sh:

 rte_crypto_sym.h:586:3: error: anonymous structs are a C11 extension
     [-Werror,-Wc11-extensions]
 rte_crypto_sym.h:510:2: error: anonymous unions are a C11 extension
     [-Werror,-Wc11-extensions]

Fixes: b59502a5e3 ("cryptodev: add AEAD parameters in crypto operation")

Signed-off-by: Adrien Mazarguil <adrien.mazarguil@6wind.com>
Acked-by: Pablo de Lara <pablo.de.lara.guarch@intel.com>
2017-08-05 01:18:21 +02:00
Adrien Mazarguil
4f28b83c45 ethdev: fix C11 extensions in exported TM header
Fix issues reported by check-includes.sh:

 rte_tm.h:473:2: error: anonymous unions are a C11 extension
     [-Werror,-Wc11-extensions]
 rte_tm.h:696:2: error: anonymous unions are a C11 extension
     [-Werror,-Wc11-extensions]
 rte_tm.h:904:2: error: anonymous unions are a C11 extension
     [-Werror,-Wc11-extensions]

Fixes: 5d109deffa ("ethdev: add traffic management API")

Signed-off-by: Adrien Mazarguil <adrien.mazarguil@6wind.com>
Acked-by: Cristian Dumitrescu <cristian.dumitrescu@intel.com>
2017-08-05 01:18:21 +02:00
Gaetan Rivet
92ac1d5a13 eal: fix hotplug device parsing
snprintf returns the length it would have written had the given length
been enough, *terminating null byte excluded*.

It will however limit the length of its writing to given length minus
one, and always put a terminating null-byte at the end of the string.

This must be taken into account when calculating the total length of the
device declaration string.

Fixes: 3054036f05 ("eal: fix possible crash in hotplug")

Signed-off-by: Gaetan Rivet <gaetan.rivet@6wind.com>
2017-08-04 18:07:26 +02:00
Thomas Monjalon
7d4583558a version: 17.08-rc4
Signed-off-by: Thomas Monjalon <thomas@monjalon.net>
2017-08-04 01:42:04 +02:00
Tiwei Bie
897f13a1f7 vhost: make page logging atomic
Each dirty page logging operation should be atomic. But it's not
atomic in current implementation. So it's possible that some dirty
pages can't be logged successfully when different threads try to
log different pages into the same byte of the log buffer concurrently.
This patch fixes this issue.

Fixes: b171fad1ff ("vhost: log used vring changes")
Cc: stable@dpdk.org

Reported-by: Xiao Wang <xiao.w.wang@intel.com>
Signed-off-by: Tiwei Bie <tiwei.bie@intel.com>
Reviewed-by: Maxime Coquelin <maxime.coquelin@redhat.com>
2017-08-03 22:09:48 +02:00
Gaetan Rivet
7b681637d2 eal: fix leak on hotplug parsing error
If rte_eal_devargs_parse fails, the rte_devargs has not yet been inserted
in the global list. When jumping to err_devarg, the removal fails and it
is not properly freed.

Free the allocated rte_devargs if its removal failed.

Coverity issue: 158658
Fixes: 7e8b266501 ("eal: fix hotplug add / remove")

Signed-off-by: Gaetan Rivet <gaetan.rivet@6wind.com>
2017-08-03 22:08:46 +02:00
Gaetan Rivet
3054036f05 eal: fix possible crash in hotplug
If devargs is NULL, building the full_dev_name will segfault
when using strlen on it.

Coverity issue: 158630
Fixes: 7e8b266501 ("eal: fix hotplug add / remove")

Signed-off-by: Gaetan Rivet <gaetan.rivet@6wind.com>
2017-08-03 22:07:19 +02:00
Gaetan Rivet
b631f3b0f2 devargs: fix policy check when adding arguments
Do not fail upon detecting a set bus configuration when adding an
rte_devargs. i.e. adding a blacklisted PCI device while the bus is
configured in whitelist mode.

This failure condition has been introduced when the bus policies
were implemented. This implementation however was meant to strictly
follow the existing API. This check was not and should not be performed
until the current API has been properly deprecated.

The same kind of check is already done when parsing EAL options.

Fixes: 02823c1db0 ("devargs: parse bus policies")

Signed-off-by: Gaetan Rivet <gaetan.rivet@6wind.com>
2017-08-03 21:30:47 +02:00