add ACPI compat patch for 5.1 and older machine types
Signed-off-by: Stefan Reiter <s.reiter@proxmox.com>
This commit is contained in:
parent
a6ede89808
commit
40e6b6e5a5
108
debian/patches/extra/0009-i386-acpi-restore-device-paths-for-pre-5.1-vms.patch
vendored
Normal file
108
debian/patches/extra/0009-i386-acpi-restore-device-paths-for-pre-5.1-vms.patch
vendored
Normal file
@ -0,0 +1,108 @@
|
|||||||
|
From 0000000000000000000000000000000000000000 Mon Sep 17 00:00:00 2001
|
||||||
|
From: Vitaly Cheptsov <cheptsov@ispras.ru>
|
||||||
|
Date: Tue, 2 Mar 2021 09:21:10 -0500
|
||||||
|
Subject: [PATCH] i386/acpi: restore device paths for pre-5.1 vms
|
||||||
|
|
||||||
|
After fixing the _UID value for the primary PCI root bridge in
|
||||||
|
af1b80ae it was discovered that this change updates Windows
|
||||||
|
configuration in an incompatible way causing network configuration
|
||||||
|
failure unless DHCP is used. More details provided on the list:
|
||||||
|
|
||||||
|
https://lists.gnu.org/archive/html/qemu-devel/2021-02/msg08484.html
|
||||||
|
|
||||||
|
This change reverts the _UID update from 1 to 0 for q35 and i440fx
|
||||||
|
VMs before version 5.2 to maintain the original behaviour when
|
||||||
|
upgrading.
|
||||||
|
|
||||||
|
Cc: qemu-stable@nongnu.org
|
||||||
|
Cc: qemu-devel@nongnu.org
|
||||||
|
Reported-by: Thomas Lamprecht <t.lamprecht@proxmox.com>
|
||||||
|
Suggested-by: Michael S. Tsirkin <mst@redhat.com>
|
||||||
|
Signed-off-by: Vitaly Cheptsov <cheptsov@ispras.ru>
|
||||||
|
Message-Id: <20210301195919.9333-1-cheptsov@ispras.ru>
|
||||||
|
Tested-by: Thomas Lamprecht <t.lamprecht@proxmox.com>
|
||||||
|
Reviewed-by: Igor Mammedov <imammedo@redhat.com>
|
||||||
|
Reviewed-by: Michael S. Tsirkin <mst@redhat.com>
|
||||||
|
Signed-off-by: Michael S. Tsirkin <mst@redhat.com>
|
||||||
|
Fixes: af1b80ae56c9 ("i386/acpi: fix inconsistent QEMU/OVMF device paths")
|
||||||
|
---
|
||||||
|
hw/i386/acpi-build.c | 4 ++--
|
||||||
|
hw/i386/pc_piix.c | 2 ++
|
||||||
|
hw/i386/pc_q35.c | 2 ++
|
||||||
|
include/hw/i386/pc.h | 1 +
|
||||||
|
4 files changed, 7 insertions(+), 2 deletions(-)
|
||||||
|
|
||||||
|
diff --git a/hw/i386/acpi-build.c b/hw/i386/acpi-build.c
|
||||||
|
index 1f5c211245..b5616582a5 100644
|
||||||
|
--- a/hw/i386/acpi-build.c
|
||||||
|
+++ b/hw/i386/acpi-build.c
|
||||||
|
@@ -1513,7 +1513,7 @@ build_dsdt(GArray *table_data, BIOSLinker *linker,
|
||||||
|
dev = aml_device("PCI0");
|
||||||
|
aml_append(dev, aml_name_decl("_HID", aml_eisaid("PNP0A03")));
|
||||||
|
aml_append(dev, aml_name_decl("_ADR", aml_int(0)));
|
||||||
|
- aml_append(dev, aml_name_decl("_UID", aml_int(0)));
|
||||||
|
+ aml_append(dev, aml_name_decl("_UID", aml_int(pcmc->pci_root_uid)));
|
||||||
|
aml_append(sb_scope, dev);
|
||||||
|
aml_append(dsdt, sb_scope);
|
||||||
|
|
||||||
|
@@ -1530,7 +1530,7 @@ build_dsdt(GArray *table_data, BIOSLinker *linker,
|
||||||
|
aml_append(dev, aml_name_decl("_HID", aml_eisaid("PNP0A08")));
|
||||||
|
aml_append(dev, aml_name_decl("_CID", aml_eisaid("PNP0A03")));
|
||||||
|
aml_append(dev, aml_name_decl("_ADR", aml_int(0)));
|
||||||
|
- aml_append(dev, aml_name_decl("_UID", aml_int(0)));
|
||||||
|
+ aml_append(dev, aml_name_decl("_UID", aml_int(pcmc->pci_root_uid)));
|
||||||
|
aml_append(dev, build_q35_osc_method());
|
||||||
|
aml_append(sb_scope, dev);
|
||||||
|
|
||||||
|
diff --git a/hw/i386/pc_piix.c b/hw/i386/pc_piix.c
|
||||||
|
index 13d1628f13..2524c96216 100644
|
||||||
|
--- a/hw/i386/pc_piix.c
|
||||||
|
+++ b/hw/i386/pc_piix.c
|
||||||
|
@@ -417,6 +417,7 @@ static void pc_i440fx_machine_options(MachineClass *m)
|
||||||
|
{
|
||||||
|
PCMachineClass *pcmc = PC_MACHINE_CLASS(m);
|
||||||
|
pcmc->default_nic_model = "e1000";
|
||||||
|
+ pcmc->pci_root_uid = 0;
|
||||||
|
|
||||||
|
m->family = "pc_piix";
|
||||||
|
m->desc = "Standard PC (i440FX + PIIX, 1996)";
|
||||||
|
@@ -448,6 +449,7 @@ static void pc_i440fx_5_1_machine_options(MachineClass *m)
|
||||||
|
compat_props_add(m->compat_props, hw_compat_5_1, hw_compat_5_1_len);
|
||||||
|
compat_props_add(m->compat_props, pc_compat_5_1, pc_compat_5_1_len);
|
||||||
|
pcmc->kvmclock_create_always = false;
|
||||||
|
+ pcmc->pci_root_uid = 1;
|
||||||
|
}
|
||||||
|
|
||||||
|
DEFINE_I440FX_MACHINE(v5_1, "pc-i440fx-5.1", NULL,
|
||||||
|
diff --git a/hw/i386/pc_q35.c b/hw/i386/pc_q35.c
|
||||||
|
index a3f4959c43..c58dad5ae3 100644
|
||||||
|
--- a/hw/i386/pc_q35.c
|
||||||
|
+++ b/hw/i386/pc_q35.c
|
||||||
|
@@ -329,6 +329,7 @@ static void pc_q35_machine_options(MachineClass *m)
|
||||||
|
{
|
||||||
|
PCMachineClass *pcmc = PC_MACHINE_CLASS(m);
|
||||||
|
pcmc->default_nic_model = "e1000e";
|
||||||
|
+ pcmc->pci_root_uid = 0;
|
||||||
|
|
||||||
|
m->family = "pc_q35";
|
||||||
|
m->desc = "Standard PC (Q35 + ICH9, 2009)";
|
||||||
|
@@ -364,6 +365,7 @@ static void pc_q35_5_1_machine_options(MachineClass *m)
|
||||||
|
compat_props_add(m->compat_props, hw_compat_5_1, hw_compat_5_1_len);
|
||||||
|
compat_props_add(m->compat_props, pc_compat_5_1, pc_compat_5_1_len);
|
||||||
|
pcmc->kvmclock_create_always = false;
|
||||||
|
+ pcmc->pci_root_uid = 1;
|
||||||
|
}
|
||||||
|
|
||||||
|
DEFINE_Q35_MACHINE(v5_1, "pc-q35-5.1", NULL,
|
||||||
|
diff --git a/include/hw/i386/pc.h b/include/hw/i386/pc.h
|
||||||
|
index 911e460097..7f8e1a791f 100644
|
||||||
|
--- a/include/hw/i386/pc.h
|
||||||
|
+++ b/include/hw/i386/pc.h
|
||||||
|
@@ -99,6 +99,7 @@ struct PCMachineClass {
|
||||||
|
int legacy_acpi_table_size;
|
||||||
|
unsigned acpi_data_size;
|
||||||
|
bool do_not_add_smb_acpi;
|
||||||
|
+ int pci_root_uid;
|
||||||
|
|
||||||
|
/* SMBIOS compat: */
|
||||||
|
bool smbios_defaults;
|
1
debian/patches/series
vendored
1
debian/patches/series
vendored
@ -6,6 +6,7 @@ extra/0005-virtiofsd-optionally-return-inode-pointer-from-lo_do.patch
|
|||||||
extra/0006-virtiofsd-prevent-opening-of-special-files-CVE-2020-.patch
|
extra/0006-virtiofsd-prevent-opening-of-special-files-CVE-2020-.patch
|
||||||
extra/0007-virtiofsd-Add-_llseek-to-the-seccomp-whitelist.patch
|
extra/0007-virtiofsd-Add-_llseek-to-the-seccomp-whitelist.patch
|
||||||
extra/0008-virtiofsd-Add-restart_syscall-to-the-seccomp-whiteli.patch
|
extra/0008-virtiofsd-Add-restart_syscall-to-the-seccomp-whiteli.patch
|
||||||
|
extra/0009-i386-acpi-restore-device-paths-for-pre-5.1-vms.patch
|
||||||
bitmap-mirror/0001-drive-mirror-add-support-for-sync-bitmap-mode-never.patch
|
bitmap-mirror/0001-drive-mirror-add-support-for-sync-bitmap-mode-never.patch
|
||||||
bitmap-mirror/0002-drive-mirror-add-support-for-conditional-and-always-.patch
|
bitmap-mirror/0002-drive-mirror-add-support-for-conditional-and-always-.patch
|
||||||
bitmap-mirror/0003-mirror-add-check-for-bitmap-mode-without-bitmap.patch
|
bitmap-mirror/0003-mirror-add-check-for-bitmap-mode-without-bitmap.patch
|
||||||
|
Loading…
Reference in New Issue
Block a user