On Tue, Dec 09, 2014 at 01:57:51PM +0100, Igor Mammedov wrote: > On Tue, 9 Dec 2014 14:51:59 +0200 > "Michael S. Tsirkin" <m...@redhat.com> wrote: > > > On Tue, Dec 09, 2014 at 12:45:27PM +0100, Igor Mammedov wrote: > > > On Tue, 9 Dec 2014 12:34:02 +0200 > > > "Michael S. Tsirkin" <m...@redhat.com> wrote: > > > > > > > On Tue, Dec 09, 2014 at 11:27:16AM +0100, Igor Mammedov wrote: > > > > > On Mon, 8 Dec 2014 21:13:25 +0200 > > > > > "Michael S. Tsirkin" <m...@redhat.com> wrote: > > > > > > > > > > > On Mon, Dec 08, 2014 at 04:08:01PM +0000, Igor Mammedov wrote: > > > > > > > when bridge hotplug is disabled, i.e. for machine > > > > > > > types less then 2.0, bridge device was created as > > > > > > > hotpluggable by mistake since commit 133a2da. > > > > > > > > > > > > > > Fix it by just creating it as a present device. > > > > > > > > > > > > > > Signed-off-by: Igor Mammedov <imamm...@redhat.com> > > > > > > > > > > > > What exactly is the problem here? > > > > > > It seems that such bridge is hotpluggable, even though > > > > > > e.g. windows guests lacks drivers to support this. > > > > > before 133a2da slot with existing at startup bridge weren't > > > > > marked as hotpluggable nor described in SSDT. But after > > > > > 133a2da it's described as hotpluggable slot for compat > > > > > machines (2.0 and lower) which doesn't match with original > > > > > behavior. > > > > > > > > > > Also Marcel mentioned that bridges could be hotpluggable > > > > > but that they should not be hot-UNpluggable. > > > > > > > > OK so is there some guest that's confused? > > > > What's the bug? > > > It allows to do eject on bridge when it shouldn't. > > > > I'm not sure it shouldn't. Assuming guest supports SHPC, eject on such a > > bridge might well work correctly. > If I remember correctly SHPC hotplug doesn't need ASL parts at all.
Right. And then presumably bridge itself can be removed. > > > > > > > I don't know about consequences of it, > > > it's better not to allow invalid action in the first place. > > > > > > > > > > > > > > > > > > > > > > > > > > > > > --- > > > > > > > hw/i386/acpi-build.c | 2 +- > > > > > > > 1 file changed, 1 insertion(+), 1 deletion(-) > > > > > > > > > > > > > > diff --git a/hw/i386/acpi-build.c b/hw/i386/acpi-build.c > > > > > > > index b37a397..1fb92e5 100644 > > > > > > > --- a/hw/i386/acpi-build.c > > > > > > > +++ b/hw/i386/acpi-build.c > > > > > > > @@ -913,7 +913,7 @@ static void build_pci_bus_end(PCIBus *bus, > > > > > > > void *bus_state) > > > > > > > } > > > > > > > } > > > > > > > > > > > > > > - if (!dc->hotpluggable || bridge_in_acpi) { > > > > > > > + if (!dc->hotpluggable || pc->is_bridge) { > > > > > > > clear_bit(slot, slot_hotplug_enable); > > > > > > > } > > > > > > > } > > > > > > > -- > > > > > > > 1.8.3.1