[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
[PATCH 10/40] pcihp: piix4: do not call acpi_pcihp_reset() when ACPI PCI
From: |
Igor Mammedov |
Subject: |
[PATCH 10/40] pcihp: piix4: do not call acpi_pcihp_reset() when ACPI PCI hotplug is disabled |
Date: |
Thu, 12 Jan 2023 15:02:42 +0100 |
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>
---
CC: "Philippe Mathieu-Daudé" <philmd@linaro.org>
---
hw/acpi/piix4.c | 4 +++-
1 file changed, 3 insertions(+), 1 deletion(-)
diff --git a/hw/acpi/piix4.c b/hw/acpi/piix4.c
index 0a81f1ad93..f256761e55 100644
--- a/hw/acpi/piix4.c
+++ b/hw/acpi/piix4.c
@@ -305,7 +305,9 @@ static void piix4_pm_reset(DeviceState *dev)
acpi_update_sci(&s->ar, s->irq);
pm_io_space_update(s);
- acpi_pcihp_reset(&s->acpi_pci_hotplug, !s->use_acpi_root_pci_hotplug);
+ if (s->use_acpi_hotplug_bridge || s->use_acpi_root_pci_hotplug) {
+ acpi_pcihp_reset(&s->acpi_pci_hotplug, !s->use_acpi_root_pci_hotplug);
+ }
}
static void piix4_pm_powerdown_req(Notifier *n, void *opaque)
--
2.31.1
- [PATCH 15/40] tests: boot_sector_test(): make it multi-shot, (continued)
- [PATCH 15/40] tests: boot_sector_test(): make it multi-shot, Igor Mammedov, 2023/01/12
- [PATCH 03/40] tests: acpi: whitelist DSDT blobs for tests that use pci-bridges, Igor Mammedov, 2023/01/12
- [PATCH 09/40] pci: acpi hotplug: rename x-native-hotplug to x-do-not-expose-native-hotplug-cap, Igor Mammedov, 2023/01/12
- [PATCH 14/40] tests: acpi: extend bridge tests with hotplugged bridges, Igor Mammedov, 2023/01/12
- [PATCH 08/40] x86: acpi: pcihp: clean up duplicate bridge_in_acpi assignment, Igor Mammedov, 2023/01/12
- [PATCH 12/40] x86: pcihp: fix invalid AML PCNT calls to hotplugged bridges, Igor Mammedov, 2023/01/12
- [PATCH 22/40] pcihp: do not put empty PCNT in DSDT, Igor Mammedov, 2023/01/12
- [PATCH 06/40] tests: acpi: cleanup use_uefi argument usage, Igor Mammedov, 2023/01/12
- [PATCH 17/40] tests: acpi: whitelist DSDT before refactoring acpi based PCI hotplug machinery, Igor Mammedov, 2023/01/12
- [PATCH 19/40] tests: acpi: update expected blobs, Igor Mammedov, 2023/01/12
- [PATCH 10/40] pcihp: piix4: do not call acpi_pcihp_reset() when ACPI PCI hotplug is disabled,
Igor Mammedov <=
- [PATCH 29/40] pcihp: make bridge describe itself using AcpiDevAmlIfClass:build_dev_aml, Igor Mammedov, 2023/01/12
- [PATCH 01/40] tests: qtest: print device_add error before failing test, Igor Mammedov, 2023/01/12
- [PATCH 20/40] tests: acpi: whitelist DSDT before refactoring acpi based PCI hotplug machinery, Igor Mammedov, 2023/01/12
- [PATCH 25/40] tests: acpi: add endpoint devices to bridges, Igor Mammedov, 2023/01/12
- [PATCH 30/40] pci: make sure pci_bus_is_express() won't error out with "discards ‘const’ qualifier", Igor Mammedov, 2023/01/12
- [PATCH 36/40] pcihp: acpi: ignore coldplugged bridges when composing hotpluggable slots, Igor Mammedov, 2023/01/12
- [PATCH 26/40] tests: acpi: update expected blobs, Igor Mammedov, 2023/01/12
- [PATCH 32/40] tests: acpi: whitelist DSDT before decoupling PCI hotplug code from basic slots description, Igor Mammedov, 2023/01/12
- [PATCH 37/40] tests: acpi: update expected blobs, Igor Mammedov, 2023/01/12
- [PATCH 39/40] pcihp: generate populated non-hotpluggble slot descriptions on non-hotplug path, Igor Mammedov, 2023/01/12