[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
[Qemu-devel] [PULL 14/37] q35: acpi: do not create dummy MCFG table
From: |
Michael S. Tsirkin |
Subject: |
[Qemu-devel] [PULL 14/37] q35: acpi: do not create dummy MCFG table |
Date: |
Thu, 16 May 2019 08:19:14 -0400 |
From: Igor Mammedov <address@hidden>
Dummy table (with signature "QEMU") creation came from original SeaBIOS
codebase. And QEMU would have to keep it around if there were Q35 machine
that depended on keeping ACPI tables blob constant size. Luckily there
were no versioned Q35 machine types before commit:
(since 2.3) a1666142db acpi-build: make ROMs RAM blocks resizeable
which obsoleted need to keep ACPI tables blob the same size on
source/destination.
Considering the 1st versioned machine is pc-q35-2.4, the dummy table
is not really necessary and it's safe to drop it without breaking
cross version migration in both directions unconditionally.
Signed-off-by: Igor Mammedov <address@hidden>
Message-Id: <address@hidden>
Reviewed-by: Wei Yang <address@hidden>
Reviewed-by: Michael S. Tsirkin <address@hidden>
Signed-off-by: Michael S. Tsirkin <address@hidden>
Reviewed-by: Michael S. Tsirkin <address@hidden>
Signed-off-by: Michael S. Tsirkin <address@hidden>
---
hw/i386/acpi-build.c | 18 ++++--------------
1 file changed, 4 insertions(+), 14 deletions(-)
diff --git a/hw/i386/acpi-build.c b/hw/i386/acpi-build.c
index 416da318ae..8671e25af4 100644
--- a/hw/i386/acpi-build.c
+++ b/hw/i386/acpi-build.c
@@ -2401,7 +2401,6 @@ static void
build_mcfg_q35(GArray *table_data, BIOSLinker *linker, AcpiMcfgInfo *info)
{
AcpiTableMcfg *mcfg;
- const char *sig;
int len = sizeof(*mcfg) + 1 * sizeof(mcfg->allocation[0]);
mcfg = acpi_data_push(table_data, len);
@@ -2411,19 +2410,7 @@ build_mcfg_q35(GArray *table_data, BIOSLinker *linker,
AcpiMcfgInfo *info)
mcfg->allocation[0].start_bus_number = 0;
mcfg->allocation[0].end_bus_number = PCIE_MMCFG_BUS(info->mcfg_size - 1);
- /* MCFG is used for ECAM which can be enabled or disabled by guest.
- * To avoid table size changes (which create migration issues),
- * always create the table even if there are no allocations,
- * but set the signature to a reserved value in this case.
- * ACPI spec requires OSPMs to ignore such tables.
- */
- if (info->mcfg_base == PCIE_BASE_ADDR_UNMAPPED) {
- /* Reserved signature: ignored by OSPM */
- sig = "QEMU";
- } else {
- sig = "MCFG";
- }
- build_header(linker, table_data, (void *)mcfg, sig, len, 1, NULL, NULL);
+ build_header(linker, table_data, (void *)mcfg, "MCFG", len, 1, NULL, NULL);
}
/*
@@ -2592,6 +2579,9 @@ static bool acpi_get_mcfg(AcpiMcfgInfo *mcfg)
}
mcfg->mcfg_base = qnum_get_uint(qobject_to(QNum, o));
qobject_unref(o);
+ if (mcfg->mcfg_base == PCIE_BASE_ADDR_UNMAPPED) {
+ return false;
+ }
o = object_property_get_qobject(pci_host, PCIE_HOST_MCFG_SIZE, NULL);
assert(o);
--
MST
- [Qemu-devel] [PULL 04/37] virtio: Introduce started flag to VirtioDevice, (continued)
- [Qemu-devel] [PULL 04/37] virtio: Introduce started flag to VirtioDevice, Michael S. Tsirkin, 2019/05/16
- [Qemu-devel] [PULL 05/37] virtio: Use started flag in virtio_vmstate_change(), Michael S. Tsirkin, 2019/05/16
- [Qemu-devel] [PULL 06/37] vhost-user-blk: Use started flag in vhost_user_blk_set_status(), Michael S. Tsirkin, 2019/05/16
- [Qemu-devel] [PULL 07/37] vhost-user-blk: Only start vhost-user backend with the first kick, Michael S. Tsirkin, 2019/05/16
- [Qemu-devel] [PULL 08/37] vhost-user-blk: Add return value for vhost_user_blk_start(), Michael S. Tsirkin, 2019/05/16
- [Qemu-devel] [PULL 09/37] vhost-user-blk: Add support to reconnect backend, Michael S. Tsirkin, 2019/05/16
- [Qemu-devel] [PULL 10/37] contrib/vhost-user-blk: enable inflight I/O tracking, Michael S. Tsirkin, 2019/05/16
- [Qemu-devel] [PULL 11/37] acpi/piix4: Convert debug printf()s to trace events, Michael S. Tsirkin, 2019/05/16
- [Qemu-devel] [PULL 12/37] acpi/pcihp: Convert debug printf()s to trace events, Michael S. Tsirkin, 2019/05/16
- [Qemu-devel] [PULL 13/37] acpi/pcihp: Add a few more trace points related to unplug, Michael S. Tsirkin, 2019/05/16
- [Qemu-devel] [PULL 14/37] q35: acpi: do not create dummy MCFG table,
Michael S. Tsirkin <=
- [Qemu-devel] [PULL 15/37] do not call vhost_net_cleanup() on running net from char user event, Michael S. Tsirkin, 2019/05/16
- [Qemu-devel] [PULL 16/37] hw/arm/virt-acpi-build: remove unnecessary variable mcfg_start, Michael S. Tsirkin, 2019/05/16
- [Qemu-devel] [PULL 17/37] i386, acpi: remove mcfg_ prefix in AcpiMcfgInfo members, Michael S. Tsirkin, 2019/05/16
- [Qemu-devel] [PULL 18/37] hw/arm/virt-acpi-build: pass AcpiMcfgInfo to build_mcfg(), Michael S. Tsirkin, 2019/05/16
- [Qemu-devel] [PULL 19/37] hw/acpi: Consolidate build_mcfg to pci.c, Michael S. Tsirkin, 2019/05/16
- [Qemu-devel] [PULL 20/37] libvhost-user: fix bad vu_log_write, Michael S. Tsirkin, 2019/05/16
- [Qemu-devel] [PULL 21/37] pcie: Remove redundant test in pcie_mmcfg_data_{read, write}(), Michael S. Tsirkin, 2019/05/16
- [Qemu-devel] [PULL 22/37] pci: Simplify pci_bus_is_root(), Michael S. Tsirkin, 2019/05/16