Go to file
Huawei Xie b81026f1e7 net/virtio: fix used index retrieved only once
In the following loop:
    while (vq->vq_used_cons_idx != vq->vq_ring.used->idx) {
            ...
    }
There is no external function call or any explict memory barrier
in the loop, the re-read of used->idx might be optimized and only
be retrieved once.

Use of voaltile normally should be prohibited, and access_once
is Linux kernel's style to handle this issue; Once we have that
macro in DPDK, we could change to that style.

virtio_recv_mergable_pkts might also have the same issue, so fix
it as well.

Fixes: 823ad64795 ("virtio: support multiple queues")
Fixes: 13ce5e7eb9 ("virtio: mergeable buffers")

Signed-off-by: Huawei Xie <huawei.xie@intel.com>
Acked-by: Yuanhan Liu <yuanhan.liu@linux.intel.com>
2016-06-22 09:47:12 +02:00
app app/testpmd: fix memory leaks after xstats errors 2016-06-21 15:55:11 +02:00
config net/virtio-user: add vhost-user adapter layer 2016-06-22 09:47:12 +02:00
doc net/virtio-user: add virtual device 2016-06-22 09:47:12 +02:00
drivers net/virtio: fix used index retrieved only once 2016-06-22 09:47:12 +02:00
examples examples/vhost: add client option 2016-06-22 09:47:12 +02:00
lib vhost: check hugepage fstat error 2016-06-22 09:47:12 +02:00
mk crypto/snow3g: rename libsso reference due to library update 2016-06-20 22:38:44 +02:00
pkg version: 16.04 2016-04-11 23:56:34 +02:00
scripts crypto/snow3g: rename libsso reference due to library update 2016-06-20 22:38:44 +02:00
tools tools: allow binding to other network class devices 2016-05-19 12:24:18 +02:00
.gitignore init DPDK repository 2013-03-07 10:57:42 +01:00
GNUmakefile drivers: create new directory 2015-05-22 15:51:38 +02:00
LICENSE.GPL doc: GPL/LGPL licenses 2013-07-25 14:43:06 +02:00
LICENSE.LGPL doc: fix file format (dos to unix) 2013-09-06 11:43:07 +02:00
MAINTAINERS crypto/kasumi: add driver for KASUMI library 2016-06-20 22:25:32 +02:00
Makefile remove trailing whitespaces 2014-06-11 00:29:34 +02:00
README doc: add readme file 2015-12-13 22:06:58 +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 license for the core libraries and
drivers. The kernel components are GPLv2 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