vhost: reset device properly
authorYuanhan Liu <yuanhan.liu@linux.intel.com>
Thu, 12 Nov 2015 04:10:41 +0000 (12:10 +0800)
committerThomas Monjalon <thomas.monjalon@6wind.com>
Thu, 12 Nov 2015 11:39:08 +0000 (12:39 +0100)
commit87308b5370274d2d6520a0ed448e2f2b43d6debc
tree0cfe48ddee8af11e19bc910bb0314223f68d5031
parentd243ecf0c2de7c0fe45f6efa30c26f1c79c8cb16
vhost: reset device properly

Currently, we reset all fields of a device to zero when reset
happens, which is wrong, since for some fields like device_fh,
ifname, and virt_qp_nb, they should be same and be kept after
reset until the device is removed. And this is what's the new
helper function reset_device() for.

And use rte_zmalloc() instead of rte_malloc, so that we could
avoid init_device(), which basically dose zero reset only so far.
Hence, init_device() is dropped in this patch.

This patch also removes a hack of using the offset a specific
field (which is virtqueue now) inside of `virtio_net' structure
to do reset, which could be broken easily if someone changed the
field order without caution.

Cc: Tetsuya Mukawa <mukawa@igel.co.jp>
Cc: Huawei Xie <huawei.xie@intel.com>
Signed-off-by: Yuanhan Liu <yuanhan.liu@linux.intel.com>
Acked-by: Rich Lane <rich.lane@bigswitch.com>
lib/librte_vhost/virtio-net.c