Go to file
Jiayu Hu af4d7ad5d9 vhost: fix packed ring descriptor update in async enqueue
If the packet uses multiple descriptors and its descriptor indices are
wrapped, the first descriptor flag is not updated last, which may cause
virtio read the incomplete packet. For example, given a packet uses 64
descriptors, and virtio ring size is 256, and its descriptor indices are
224~255 and 0~31, current implementation will update 224~255 descriptor
flags earlier than 0~31 descriptor flags.

This patch fixes this issue by updating descriptor flags in one loop,
so that the first descriptor flag is always updated last.

Fixes: 873e8dad6f ("vhost: support packed ring in async datapath")

Signed-off-by: Jiayu Hu <jiayu.hu@intel.com>
Reviewed-by: Chenbo Xia <chenbo.xia@intel.com>
Reviewed-by: Maxime Coquelin <maxime.coquelin@redhat.com>
2021-11-16 11:21:48 +01:00
.ci ci: test minimum configuration 2021-11-17 12:48:20 +01:00
.github/workflows ci: test minimum configuration 2021-11-17 12:48:20 +01:00
app build: make pdump optional 2021-11-17 12:49:19 +01:00
buildtools buildtools: make AVX512 check portable 2021-11-17 09:41:16 +01:00
config config/x86: fix MinGW cross build with Meson 0.49 2021-11-17 09:41:19 +01:00
devtools ci: test minimum configuration 2021-11-17 12:48:20 +01:00
doc doc: fix Doxygen examples build on FreeBSD 2021-11-17 11:19:31 +01:00
drivers vdpa/mlx5: fix mkey creation check 2021-11-16 11:21:18 +01:00
examples examples/vhost: fix port init in mergeable mode 2021-11-16 11:01:22 +01:00
kernel kni: update kernel API to set random MAC address 2021-11-08 11:51:39 +01:00
lib vhost: fix packed ring descriptor update in async enqueue 2021-11-16 11:21:48 +01:00
license lib: remove librte_ prefix from directory names 2021-04-21 14:04:09 +02:00
usertools usertools/devbind: update octeontx2 DMA device 2021-11-10 14:15:39 +01:00
.editorconfig doc: add Meson coding style to contributors guide 2021-04-21 14:04:09 +02:00
.gitattributes
.gitignore gpudev: introduce GPU device class library 2021-11-08 17:20:52 +01:00
.travis.yml version: 21.11-rc0 2021-08-17 08:37:52 +02:00
ABI_VERSION version: 21.11-rc0 2021-08-17 08:37:52 +02:00
MAINTAINERS buildtools: make AVX512 check portable 2021-11-17 09:41:16 +01:00
Makefile
meson_options.txt config: add option for atomic mbuf reference counting 2021-10-25 17:53:30 +02:00
meson.build lib: remove librte_ prefix from directory names 2021-04-21 14:04:09 +02:00
README
VERSION version: 21.11-rc2 2021-11-09 00:45:12 +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