diff mbox

[v3,2/8] pc: acpi: decribe bridge device as not hotpluggable

Message ID 1418989624-12049-3-git-send-email-imammedo@redhat.com
State New
Headers show

Commit Message

Igor Mammedov Dec. 19, 2014, 11:46 a.m. UTC
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 (2.1).
Fix it by just creating it as a present device as
it was done in 1.7.

Signed-off-by: Igor Mammedov <imammedo@redhat.com>
---
 hw/i386/acpi-build.c | 2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)

Comments

Michael S. Tsirkin Jan. 19, 2015, 12:46 p.m. UTC | #1
On Fri, Dec 19, 2014 at 11:46:58AM +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 (2.1).
> Fix it by just creating it as a present device as
> it was done in 1.7.
> 
> Signed-off-by: Igor Mammedov <imammedo@redhat.com>

I still don't get this. Under 1.7 all devices are hotpluggable
unless disabled by device class. Bridges were hotpluggable too.

See 72c194f7e75cb64b2558111cb111adb49fbf4097, function
acpi_get_hotplug_info.

So if the idea is to match 1.7, this does not do it.

What, then, is the purpose of this patch?


> ---
>  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 a4d0c0c..c151fde 100644
> --- a/hw/i386/acpi-build.c
> +++ b/hw/i386/acpi-build.c
> @@ -919,7 +919,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
>
Igor Mammedov Jan. 20, 2015, 9:22 a.m. UTC | #2
On Mon, 19 Jan 2015 14:46:38 +0200
"Michael S. Tsirkin" <mst@redhat.com> wrote:

> On Fri, Dec 19, 2014 at 11:46:58AM +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 (2.1).
> > Fix it by just creating it as a present device as
> > it was done in 1.7.
> > 
> > Signed-off-by: Igor Mammedov <imammedo@redhat.com>
> 
> I still don't get this. Under 1.7 all devices are hotpluggable
> unless disabled by device class. Bridges were hotpluggable too.
> 
> See 72c194f7e75cb64b2558111cb111adb49fbf4097, function
> acpi_get_hotplug_info.
> 
> So if the idea is to match 1.7, this does not do it.
Yep, I was wrong about 1.7.
Let's see:

1.7 - all PCI devices created as hotpluggable entries

99fd437d - creates bridge as non hotpluggable unconditionally

133a2da4 - creates bridge as
  1 - non hotpluggable if bridge hotplug supported - subtree is creeated
  2 - if bridge hotplug isn't supported, it creates bridge as hotpluggable - subtree is not created


so I guess, I should maintain what 133a2da4 does, drop this patch and amend 8/8

> 
> What, then, is the purpose of this patch?
> 
> 
> > ---
> >  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 a4d0c0c..c151fde 100644
> > --- a/hw/i386/acpi-build.c
> > +++ b/hw/i386/acpi-build.c
> > @@ -919,7 +919,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
> >
diff mbox

Patch

diff --git a/hw/i386/acpi-build.c b/hw/i386/acpi-build.c
index a4d0c0c..c151fde 100644
--- a/hw/i386/acpi-build.c
+++ b/hw/i386/acpi-build.c
@@ -919,7 +919,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);
         }
     }