Now that the memory API is thread-safe, we can use it in virtio-blk-dataplane and replace hostmem.[ch]. This series does this, and also changes the vring API to use VirtQueueElement (with an eye towards migration). With this change, virtio-blk-dataplane is also safe against memory hot-unplug.
The next step would be to replace memory_region_find with address_space_{map,unmap}, which handle dirtying of memory correctly. However these APIs are not thread-safe yet, and neither is the handling of dirty memory (Juan's patches may be a start here). Also, the usage of iov_discard_{front,back} may cause some complication when we use address_space_{map,unmap}. We may have to change a bit the logic in virtio-blk-dataplane to switch to address_space_{map,unmap}. If we do not want to do this intermediate step, the first three patches can be applied separately from the fourth. Paolo Bonzini (4): vring: create a common function to parse descriptors vring: factor common code for error exits dataplane: change vring API to use VirtQueueElement dataplane: replace hostmem with memory_region_find hw/block/dataplane/virtio-blk.c | 86 +++++------- hw/virtio/dataplane/Makefile.objs | 2 +- hw/virtio/dataplane/hostmem.c | 183 ------------------------- hw/virtio/dataplane/vring.c | 244 +++++++++++++++++++++------------- include/hw/virtio/dataplane/hostmem.h | 58 -------- include/hw/virtio/dataplane/vring.h | 9 +- 6 files changed, 193 insertions(+), 389 deletions(-) delete mode 100644 hw/virtio/dataplane/hostmem.c delete mode 100644 include/hw/virtio/dataplane/hostmem.h -- 1.8.3.1