[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
Re: [Qemu-devel] [PATCH] qdev: fix the order compat and global propertie
From: |
Cornelia Huck |
Subject: |
Re: [Qemu-devel] [PATCH] qdev: fix the order compat and global properties are applied |
Date: |
Tue, 6 Dec 2016 18:51:46 +0100 |
On Tue, 6 Dec 2016 14:25:45 -0200
Eduardo Habkost <address@hidden> wrote:
> On Tue, Dec 06, 2016 at 04:41:12PM +0100, Greg Kurz wrote:
> > The current code recursively applies global properties from child up to
> > parent types. This can cause properties passed with the -global option to
> > be silently overridden by internal compat properties.
> >
> > This is exactly what happens with virtio-*-pci drivers since commit:
> >
> > "9a4c0e220d8a hw/virtio-pci: fix virtio behaviour"
> >
> > Passing -device virtio-blk-pci.disable-modern=off has no effect on 2.6
> > machine types because the internal virtio-pci.disable-modern=on compat
> > property always prevail.
> >
> > This patch fixes the issue by reversing the logic: we now go through the
> > global property list and, for each property, we check if it is applicable
> > to the device.
> >
> > This result in compat properties being applied first, in the order they
> > appear in the HW_COMPAT_* macros, followed by global properties, in they
> > order appear on the command line.
> >
> > Signed-off-by: Greg Kurz <address@hidden>
>
> FWIW, this is the behavior I would like to see. But:
>
> I think it's too late to change the rules on 2.8. I would like to
> change behavior only on 2.9, so we have time to discuss and test
> it. I believe the 2.8 fix should be just changing the HW_COMPAT_*
> macros to touch only the device subclasses, so we fix the
> regression introduced by commit 9a4c0e220d8a without changing any
> rules on how -global is handled.
Agreed on both counts.