On Fri, 9 Sep 2016 13:44:35 +0200 Maxime Coquelin <maxime.coque...@redhat.com> wrote:
> On 09/09/2016 01:20 PM, Cornelia Huck wrote: > > On Fri, 9 Sep 2016 14:04:55 +0300 > > Marcel Apfelbaum <mar...@redhat.com> wrote: > > > >> On 09/09/2016 01:40 PM, Cornelia Huck wrote: > >>> 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. > >> > >> It seems that for ccw is enough to rewind dev->rev_max, > >> sadly for pci we need to rewind a lot of settings/resources. > > > > Yes, that what I meant with 'more flexibility for ccw'. > Maybe we could replace post_plugged with a pre_plugged approach? > > In ->pre_plugged(), cww and pci would specify which features it can > support using virtio_add_feature(). > Then we could call get_features() before ->device_plugged(). I think that would work for ccw (haven't looked at pci). > > Doing this, both ccw and pci would have the needed information without > having to rewind any settings. > > Does that make sense? > > But for now, I think it would be better to merge something in the spirit > of this series (taking into account to remarks). > Indeed, I think we want this fixed in stable, but the above proposal > would be too huge for stable. A 'just check for VERSION_1' approach would probably be best for stable.