Go to file
Luc Pelletier 00901e4d1a eal/x86: fix unaligned access for small memcpy
Calls to rte_memcpy for 1 < n < 16 could result in unaligned
loads/stores, which is undefined behaviour according to the C
standard, and strict aliasing violations.

The code was changed to use a packed structure that allows aliasing
(using the __may_alias__ attribute) to perform the load/store
operations. This results in code that has the same performance as the
original code and that is also C standards-compliant.

Fixes: af75078fec ("first public release")
Cc: stable@dpdk.org

Signed-off-by: Luc Pelletier <lucp.at.work@gmail.com>
Acked-by: Konstantin Ananyev <konstantin.ananyev@intel.com>
Tested-by: Konstantin Ananyev <konstantin.ananyev@intel.com>
2022-05-19 18:19:30 +02:00
.ci ci: build some job with ASan 2022-05-11 14:05:57 +02:00
.github/workflows ci: build some job with ASan 2022-05-11 14:05:57 +02:00
app test/threads: add unit test 2022-05-19 16:45:07 +02:00
buildtools build: fix build on FreeBSD with Meson 0.61.1 2022-03-08 16:37:22 +01:00
config ci: switch to Ubuntu 20.04 2022-05-09 09:08:15 +02:00
devtools eal: factorize lcore main loop 2022-04-14 13:59:50 +02:00
doc event/cnxk: support setting queue attributes at runtime 2022-05-17 16:43:55 +02:00
drivers event/cnxk: flush event queues over multiple pass 2022-05-17 16:43:57 +02:00
examples examples: use event port quiescing 2022-05-17 16:43:30 +02:00
kernel kni: fix freeing order in device release 2022-02-27 20:47:22 +01:00
lib eal/x86: fix unaligned access for small memcpy 2022-05-19 18:19:30 +02:00
license lib: remove librte_ prefix from directory names 2021-04-21 14:04:09 +02:00
usertools support systemd service convention for runtime directory 2022-02-09 19:12:40 +01:00
.editorconfig devtools: clarify that lines up to 100 characters are ok 2021-11-25 11:51:24 +01:00
.gitattributes
.gitignore doc: add eventdev feature matrices 2021-11-26 16:29:25 +01:00
.travis.yml version: 22.07-rc0 2022-03-21 13:56:40 +01:00
ABI_VERSION version: 22.07-rc0 2022-03-21 13:56:40 +01:00
MAINTAINERS test/threads: add unit test 2022-05-19 16:45:07 +02:00
Makefile build: create dummy Makefile 2020-09-07 23:51:57 +02:00
meson_options.txt config: add option for atomic mbuf reference counting 2021-10-25 17:53:30 +02:00
meson.build build: remove deprecated Meson functions 2022-02-02 18:46:53 +01:00
README license: introduce SPDX identifiers 2018-01-04 22:41:38 +01:00
VERSION version: 22.07-rc0 2022-03-21 13:56:40 +01:00

DPDK is a set of libraries and drivers for fast packet processing.
It supports many processor architectures and both FreeBSD and Linux.

The DPDK uses the Open Source BSD-3-Clause license for the core libraries
and drivers. The kernel components are GPL-2.0 licensed.

Please check the doc directory for release notes,
API documentation, and sample application information.

For questions and usage discussions, subscribe to: users@dpdk.org
Report bugs and issues to the development mailing list: dev@dpdk.org