rte_virtio: fix setting NEXT flag for the last chain descriptor
It was wrongly assumed that each READ will contain at least one iovec. This could potentially corrupt the desc array. Change-Id: I48ca7efbe4bea897e0ad16184452bddcf3daf49b Signed-off-by: Dariusz Stojaczyk <dariuszx.stojaczyk@intel.com> Reviewed-on: https://review.gerrithub.io/383009 Reviewed-by: Daniel Verkamp <daniel.verkamp@intel.com> Reviewed-by: Jim Harris <james.r.harris@intel.com> Reviewed-by: Changpeng Liu <changpeng.liu@intel.com> Tested-by: SPDK Automated Test System <sys_sgsw@intel.com>
This commit is contained in:
parent
a922e9f302
commit
770dcb0006
@ -433,7 +433,7 @@ virtqueue_enqueue_xmit(struct virtqueue *vq, struct virtio_req *req)
|
||||
descs[idx].flags = VRING_DESC_F_NEXT;
|
||||
idx = descs[idx].next;
|
||||
|
||||
if (req->is_write) {
|
||||
if (req->is_write || req->iovcnt == 0) {
|
||||
for (i = 0; i < req->iovcnt; i++) {
|
||||
virtqueue_iov_to_desc(vq, idx, &iov[i]);
|
||||
descs[idx].flags = VRING_DESC_F_NEXT;
|
||||
|
Loading…
Reference in New Issue
Block a user