Files
qemu-spoof/patches/0011-acpi-policy-waet-vmgenid.patch
T

40 lines
1.6 KiB
Diff

qemu-spoof: ACPI policy gates (WAET drop, vmgenid hide)
x86_build_acpi_tables(): skip the WAET (Windows ACPI Emulated Devices) table when
spoof_waet_drop(); skip the vmgenid SSDT when spoof_vmgenid_policy()==HIDE. Both
default to off unless a spoof-seed is set.
diff --git a/hw/i386/acpi-build.c b/hw/i386/acpi-build.c
index f622b91..fece5ce 100644
--- a/hw/i386/acpi-build.c
+++ b/hw/i386/acpi-build.c
@@ -21,6 +21,7 @@
*/
#include "qemu/osdep.h"
+#include "hw/misc/spoof.h"
#include "qapi/error.h"
#include "qobject/qnum.h"
#include "acpi-build.h"
@@ -2000,7 +2001,7 @@ void acpi_build(AcpiBuildTables *tables, MachineState *machine)
#endif
vmgenid_dev = find_vmgenid_dev();
- if (vmgenid_dev) {
+ if (vmgenid_dev && spoof_vmgenid_policy() != SPOOF_VGID_HIDE) {
acpi_add_table(table_offsets, tables_blob);
vmgenid_build_acpi(VMGENID(vmgenid_dev), tables_blob,
tables->vmgenid, tables->linker, x86ms->oem_id);
@@ -2075,8 +2076,10 @@ void acpi_build(AcpiBuildTables *tables, MachineState *machine)
x86ms->oem_id, x86ms->oem_table_id, &pcms->cxl_devices_state);
}
- acpi_add_table(table_offsets, tables_blob);
- build_waet(tables_blob, tables->linker, x86ms->oem_id, x86ms->oem_table_id);
+ if (!spoof_waet_drop()) { /* qemu-spoof: WAET = emulated-devices tell */
+ acpi_add_table(table_offsets, tables_blob);
+ build_waet(tables_blob, tables->linker, x86ms->oem_id, x86ms->oem_table_id);
+ }
/* Add tables supplied by user (if any) */
for (u = acpi_table_first(); u; u = acpi_table_next(u)) {