On Thu, Jun 09, 2016 at 12:25:54PM +0200, Marc-André Lureau wrote: > Hi > > On Thu, Jun 9, 2016 at 12:07 PM, Victor Kaplansky <vict...@redhat.com> wrote: > > What if set_vring_base is called after set_vring_addr? > > Maybe it is worth to add the fixup to the set_vring_base as well? > > It would need to handle conditions like set_vring_base() being called > while set_vring_addr() is not yet, and thus vq->used isn't set. > > Imho it's not necessary, since order is currently fixed in > vhost_virtqueue_start(), but we could specify this in the protocol to > avoid too much possible states.
I personally think it's better to just get the used idx from memory before reconnecting. Will fix old clients automatically. Whoever wants to support old QEMU, can do this by a work-around similar to the supplied one. Maybe add code here to make sure everything is setup - if not it's a new QEMU so it does not need the work-around. I think there was a patch like this suggested at some point - mind digging it up? > -- > Marc-André Lureau