virtio-net clean and init device after a VHOST_USER_RESET_OWNER. This reset device identifier to 0 and break ll_root listing logic. This patch keep the old device identifier and re-write it on the cleaned device.
Signed-off-by: Jerome Jutteau <jerome.jutteau at outscale.com> --- lib/librte_vhost/virtio-net.c | 3 +++ 1 file changed, 3 insertions(+) diff --git a/lib/librte_vhost/virtio-net.c b/lib/librte_vhost/virtio-net.c index d0f1764..955a29d 100644 --- a/lib/librte_vhost/virtio-net.c +++ b/lib/librte_vhost/virtio-net.c @@ -399,11 +399,14 @@ static int reset_owner(struct vhost_device_ctx ctx) { struct virtio_net_config_ll *ll_dev; + uint64_t device_fh; ll_dev = get_config_ll_entry(ctx); + device_fh = ll_dev->dev.device_fh; cleanup_device(&ll_dev->dev); init_device(&ll_dev->dev); + ll_dev->dev.device_fh = device_fh; return 0; } -- jerome