On Fri, 9 Sep 2016 12:14:32 +0200 Maxime Coquelin <maxime.coque...@redhat.com> wrote:
> This patch makes pci devices plugging more robust, by not confusing > guest with modern interface when the backend doesn't support > VIRTIO_F_VERSION_1. > > Cc: Marcel Apfelbaum <mar...@redhat.com> > Cc: Michael S. Tsirkin <m...@redhat.com> > Cc: qemu-sta...@nongnu.org > Signed-off-by: Maxime Coquelin <maxime.coque...@redhat.com> > --- > hw/virtio/virtio-pci.c | 15 +++++++++++++++ > hw/virtio/virtio-pci.h | 5 +++++ > 2 files changed, 20 insertions(+) Note that 11380b361 ("virtio: handle non-virtio-1-capable backend for ccw") fixes this issue for ccw via the introduction of a ->post_plugged() callback. Unfortunately, we did not find a good way to make it work for pci back then. Two comments: - ->post_plugged() handles the dependencies (as noticed for your first patch) - and this is due to it being called after the plugging is already done. - I don't really like pci and ccw being too different. We have probably more flexibility with the handling for ccw, so I could probably convert ccw to the same mechanism that pci uses. Maybe there are other uses for ->post_plugged()?