vhost: fix vring addresses not translated
authorMaxime Coquelin <maxime.coquelin@redhat.com>
Mon, 16 Oct 2017 14:56:27 +0000 (16:56 +0200)
committerThomas Monjalon <thomas@monjalon.net>
Tue, 24 Oct 2017 19:26:10 +0000 (21:26 +0200)
commit5cd690e4fda97bc4465195ef2f500fffde63fb64
tree7f576e35ea0c268a13c996bb17404041685ce8e5
parent8b05d0be6a3a5642d3c933e316f558d122c06962
vhost: fix vring addresses not translated

Commit 3ea7052f4b1b ("vhost: postpone rings addresses translation")
moves rings addresses translation at either vring kick or enable
time, depending on whether protocol features are enabled or not.
This is done not interpret ring information as long as the vring
is not fully initialized.

The problem is that with old QEMU versions, like v2.5, the ring
is enabled before addresses are sent, so addresses are never
translated.

This patch fixes the issue by doing the translation in
VHOST_USER_SET_VRING_ADDR handling if ring is already enabled.

Fixes: 3ea7052f4b1b ("vhost: postpone rings addresses translation")

Reported-by: Lei Yao <lei.a.yao@intel.com>
Signed-off-by: Maxime Coquelin <maxime.coquelin@redhat.com>
Acked-by: Yuanhan Liu <yliu@fridaylinux.org>
lib/librte_vhost/vhost_user.c