As discussed in the virtio-blk dataplane start/stop thread, the various transports contain a lot of similar/identical boilerplate code for setting up ioeventfds. This makes the code hard to follow.
Let's drag all of the common handling into the virtio-bus layer, hopefully reducing both the boilerplate code and the number of indirections. This RFC patchset is the result of hacking this up quickly, and I was rather surprised that it did not die immediately on my s390 system (which is all I 'tested'). So be warned :) Feedback about the approach and the interface would be good. Cornelia Huck (6): virtio-bus: common ioeventfd infrastructure virtio-bus: have callers tolerate new host notifier api virtio-ccw: convert to ioeventfd callbacks virtio-pci: convert to ioeventfd callbacks virtio-mmio: convert to ioeventfd callbacks virtio-bus: remove old set_host_notifier callback hw/block/dataplane/virtio-blk.c | 6 +- hw/s390x/virtio-ccw.c | 133 ++++++++++++++-------------------------- hw/scsi/virtio-scsi-dataplane.c | 9 ++- hw/virtio/vhost.c | 13 ++-- hw/virtio/virtio-bus.c | 108 ++++++++++++++++++++++++++++++++ hw/virtio/virtio-mmio.c | 128 +++++++++++++------------------------- hw/virtio/virtio-pci.c | 124 +++++++++++++------------------------ include/hw/virtio/virtio-bus.h | 15 ++++- 8 files changed, 263 insertions(+), 273 deletions(-) -- 2.6.5