diff options
author | Igor Mammedov <imammedo@redhat.com> | 2023-01-12 15:02:42 +0100 |
---|---|---|
committer | Michael S. Tsirkin <mst@redhat.com> | 2023-01-28 06:21:29 -0500 |
commit | 45284cfb49a47bb4536e29b4965a41a0ecb63149 (patch) | |
tree | d4f4e467e1a521bbb3609a434ef80a0693ccd378 /stubs/migr-blocker.c | |
parent | 1d77e15718c83b84aa46cfb12493a1dafa2a3252 (diff) | |
download | qemu-45284cfb49a47bb4536e29b4965a41a0ecb63149.zip qemu-45284cfb49a47bb4536e29b4965a41a0ecb63149.tar.gz qemu-45284cfb49a47bb4536e29b4965a41a0ecb63149.tar.bz2 |
pcihp: piix4: do not call acpi_pcihp_reset() when ACPI PCI hotplug is disabled
piix4_pm_reset() is calling acpi_pcihp_reset() when ACPI PCI hotplug
is disabled, which leads to assigning BSEL properties to bridges on path
acpi_set_bsel()
...
if (qbus_is_hotpluggable(BUS(bus))) {
// above happens to be true by default (though it's SHPC hotplug handler)
// set BSEL
}
At the moment the issue is masked by the fact that we use not only BSEL,
to decide if we should generated hoplug AML but also pcihp_bridge_en knob.
However the later patches will drop dependency on pcihp_bridge_en,
and use only BSEL exclusively to decide if hotplug AML for slots should be built,
which exposes issue.
We should not ever call acpi_pcihp_reset() if ACPI PCI hotplug is disabled,
make it so.
PS:
* Q35 does the right thing (i.e. it calls acpi_pcihp_reset only when pcihp is enabled)
* the issue also makes acpi_pcihp_update() logic run on SHPC enabled bridges,
which seems to be harmless
Fixes: 3d7e78aa777 ("Introduce a new flag for i440fx to disable PCI hotplug on the root bus")
Signed-off-by: Igor Mammedov <imammedo@redhat.com>
Message-Id: <20230112140312.3096331-11-imammedo@redhat.com>
Reviewed-by: Michael S. Tsirkin <mst@redhat.com>
Signed-off-by: Michael S. Tsirkin <mst@redhat.com>
Diffstat (limited to 'stubs/migr-blocker.c')
0 files changed, 0 insertions, 0 deletions