vhost: remove a hack on queue allocation
authorYuanhan Liu <yuanhan.liu@linux.intel.com>
Thu, 2 Mar 2017 06:16:07 +0000 (14:16 +0800)
committerYuanhan Liu <yuanhan.liu@linux.intel.com>
Sat, 1 Apr 2017 08:36:06 +0000 (10:36 +0200)
commit160cbc815b41f45af826136785806c887a7851a1
tree554b6a3c75e3cb6e06aaa295e4b33763e93d986d
parentde8e1fdcecdca1254dbd6a63fd6e0e65fe3e3b05
vhost: remove a hack on queue allocation

We used to allocate queues based on the index from SET_VRING_CALL
request: if corresponding queue hasn't been allocated, allocate it.

Though it's pratically right (it's the first per-vring request we
will get from QEMU for vhost-user negotiation), but it's not technically
right: it's not documented in the vhost-user spec that it will always
be the first per-vring request. For example, SET_VRING_ADDR could also
be the first per-vring request.

Thus, we should not depend the SET_VRING_CALL on queue allocation.
Instead, we could catch all the per-vring messages at the entrance of
request handler, and allocate one if it hasn't been allocated before.

By that, we could remove a hack.

Signed-off-by: Yuanhan Liu <yuanhan.liu@linux.intel.com>
lib/librte_vhost/vhost_user.c