V3 removes the assert of vhost_dev's vhost_ops, as it is not yet set at that time.
While reviewing DPDK series adding support to VHOST_USER_SET_CONFIG and VHOST_USER_GET_CONFIG request, I found that it was not backed with a dedicated protocol feature. This series addresses this by adding a new protocol feature bit, and by only negotiating it if the device supports it, as suggested by Michael. Indeed, if the feature is supported by other type of devices in the future, it would confuse the backends as it couldn't know whether the device really support it or not. To know whether the vhost device support config feature, the trick is to check whether it implemented the config_ops. That's the reason why the first patch moves setting the config ops in vhost-user-blk befoire calling vhost_user_init(). The series targets v2.12 release, else we may have to disable these requests in this release. *NOTE*: The series has only been tested as I don't have the environment to try it. Changpeng, can you please test it? Thanks, Maxime Changes since v2: ================= - Remove assert (Changpeng) - Fix typo in comment Changes since v1: ================= - Fail vhost-user init if device implements config feature but the backend doesn't. (mst) Maxime Coquelin (2): vhost-user-blk: set config ops before vhost-user init vhost-user: back SET/GET_CONFIG requests with a protocol feature docs/interop/vhost-user.txt | 21 ++++++++++++--------- hw/block/vhost-user-blk.c | 4 ++-- hw/virtio/vhost-user.c | 22 ++++++++++++++++++++++ hw/virtio/vhost.c | 1 - 4 files changed, 36 insertions(+), 12 deletions(-) -- 2.14.3