* [PATCH v2 00/10] hw/i386/pc: Remove deprecated 3.1 machines
@ 2026-03-09 14:50 Philippe Mathieu-Daudé
2026-03-09 14:50 ` [PATCH v2 01/10] hw/i386/pc: Remove deprecated pc-q35/pc-i440fx/xenfv " Philippe Mathieu-Daudé
` (11 more replies)
0 siblings, 12 replies; 23+ messages in thread
From: Philippe Mathieu-Daudé @ 2026-03-09 14:50 UTC (permalink / raw)
To: qemu-devel
Cc: Zhao Liu, Yi Liu, Paolo Bonzini, Thomas Huth,
Philippe Mathieu-Daudé
1 y.o. dust Thomas asked me to rebase & post:
The versioned 'pc' and 'q35' machines up to 3.1 been marked
as deprecated two releases ago, and are older than 6 years,
so according to our support policy we can remove them.
v2: Remove xenfv-3.1 in patch #1
Philippe Mathieu-Daudé (10):
hw/i386/pc: Remove deprecated pc-q35/pc-i440fx/xenfv 3.1 machines
hw/i386/pc: Remove PCMachineClass::pvh_enabled field
hw/i386/x86: Remove @pvh_enabled argument in x86_load_linux()
hw/core/boards: Remove MachineClass::smbus_no_migration_support field
hw/i386/pc: Remove pc_compat_3_1[] array
hw/i386/iommu: Remove IntelIOMMUState::dma_drain field
target/i386/cpu: Remove X86CPU::intel_pt_auto_level field
hw/core/machine: Remove the hw_compat_3_1[] array
hw/pci-bridge/pcie_rp: Remove PCIESlot::disable_acs field
hw/tpm: Remove CRBState::ppi_enabled field
hw/tpm/tpm_tis.h | 1 -
include/hw/core/boards.h | 4 ----
include/hw/i2c/pm_smbus.h | 7 -------
include/hw/i386/intel_iommu.h | 1 -
include/hw/i386/microvm.h | 2 +-
include/hw/i386/pc.h | 6 ------
include/hw/i386/x86.h | 3 +--
include/hw/pci/pcie_port.h | 3 ---
target/i386/cpu.h | 3 ---
hw/acpi/piix4.c | 8 +-------
hw/acpi/tpm.c | 4 ----
hw/core/machine.c | 17 -----------------
hw/i2c/pm_smbus.c | 7 -------
hw/i2c/smbus_eeprom.c | 4 +---
hw/i2c/smbus_ich9.c | 10 ++--------
hw/i386/acpi-build.c | 2 +-
hw/i386/intel_iommu.c | 11 +----------
hw/i386/microvm.c | 2 +-
hw/i386/nitro_enclave.c | 2 +-
hw/i386/pc.c | 31 ++-----------------------------
hw/i386/pc_piix.c | 25 -------------------------
hw/i386/pc_q35.c | 14 --------------
hw/i386/x86-common.c | 6 ++----
hw/pci-bridge/pcie_root_port.c | 3 +--
hw/tpm/tpm_crb.c | 12 +++---------
hw/tpm/tpm_tis_common.c | 4 +---
hw/tpm/tpm_tis_isa.c | 7 ++-----
target/i386/cpu.c | 10 +---------
28 files changed, 22 insertions(+), 187 deletions(-)
--
2.53.0
^ permalink raw reply [flat|nested] 23+ messages in thread
* [PATCH v2 01/10] hw/i386/pc: Remove deprecated pc-q35/pc-i440fx/xenfv 3.1 machines
2026-03-09 14:50 [PATCH v2 00/10] hw/i386/pc: Remove deprecated 3.1 machines Philippe Mathieu-Daudé
@ 2026-03-09 14:50 ` Philippe Mathieu-Daudé
2026-03-10 14:23 ` Zhao Liu
2026-03-09 14:50 ` [PATCH v2 02/10] hw/i386/pc: Remove PCMachineClass::pvh_enabled field Philippe Mathieu-Daudé
` (10 subsequent siblings)
11 siblings, 1 reply; 23+ messages in thread
From: Philippe Mathieu-Daudé @ 2026-03-09 14:50 UTC (permalink / raw)
To: qemu-devel
Cc: Zhao Liu, Yi Liu, Paolo Bonzini, Thomas Huth,
Philippe Mathieu-Daudé, Michael S. Tsirkin, Marcel Apfelbaum,
Richard Henderson, Eduardo Habkost
These machines has been supported for a period of more than 6 years.
According to our versioned machine support policy (see commit
ce80c4fa6ff "docs: document special exception for machine type
deprecation & removal") they can now be removed.
Signed-off-by: Philippe Mathieu-Daudé <philmd@linaro.org>
Reviewed-by: Thomas Huth <thuth@redhat.com>
Message-Id: <20260307152635.83893-2-philmd@linaro.org>
---
hw/i386/pc_piix.c | 25 -------------------------
hw/i386/pc_q35.c | 14 --------------
2 files changed, 39 deletions(-)
diff --git a/hw/i386/pc_piix.c b/hw/i386/pc_piix.c
index 29c8e997131..2b94c472446 100644
--- a/hw/i386/pc_piix.c
+++ b/hw/i386/pc_piix.c
@@ -655,19 +655,6 @@ static void pc_i440fx_machine_4_0_options(MachineClass *m)
DEFINE_I440FX_MACHINE(4, 0);
-static void pc_i440fx_machine_3_1_options(MachineClass *m)
-{
- PCMachineClass *pcmc = PC_MACHINE_CLASS(m);
-
- pc_i440fx_machine_4_0_options(m);
- m->smbus_no_migration_support = true;
- pcmc->pvh_enabled = false;
- compat_props_add(m->compat_props, hw_compat_3_1, hw_compat_3_1_len);
- compat_props_add(m->compat_props, pc_compat_3_1, pc_compat_3_1_len);
-}
-
-DEFINE_I440FX_MACHINE(3, 1);
-
#ifdef CONFIG_XEN
static void xenfv_machine_4_2_options(MachineClass *m)
{
@@ -679,16 +666,4 @@ static void xenfv_machine_4_2_options(MachineClass *m)
DEFINE_PC_MACHINE(xenfv_4_2, "xenfv-4.2", pc_xen_hvm_init,
xenfv_machine_4_2_options);
-
-static void xenfv_machine_3_1_options(MachineClass *m)
-{
- pc_i440fx_machine_3_1_options(m);
- m->desc = "Xen Fully-virtualized PC";
- m->alias = "xenfv";
- m->max_cpus = HVM_MAX_VCPUS;
- m->default_machine_opts = "accel=xen,suppress-vmdesc=on";
-}
-
-DEFINE_PC_MACHINE(xenfv, "xenfv-3.1", pc_xen_hvm_init,
- xenfv_machine_3_1_options);
#endif
diff --git a/hw/i386/pc_q35.c b/hw/i386/pc_q35.c
index f102da8e4a1..52b8064b4d2 100644
--- a/hw/i386/pc_q35.c
+++ b/hw/i386/pc_q35.c
@@ -600,17 +600,3 @@ static void pc_q35_machine_4_0_options(MachineClass *m)
}
DEFINE_Q35_MACHINE(4, 0);
-
-static void pc_q35_machine_3_1_options(MachineClass *m)
-{
- PCMachineClass *pcmc = PC_MACHINE_CLASS(m);
-
- pc_q35_machine_4_0_options(m);
- m->default_kernel_irqchip_split = false;
- m->smbus_no_migration_support = true;
- pcmc->pvh_enabled = false;
- compat_props_add(m->compat_props, hw_compat_3_1, hw_compat_3_1_len);
- compat_props_add(m->compat_props, pc_compat_3_1, pc_compat_3_1_len);
-}
-
-DEFINE_Q35_MACHINE(3, 1);
--
2.53.0
^ permalink raw reply related [flat|nested] 23+ messages in thread
* [PATCH v2 02/10] hw/i386/pc: Remove PCMachineClass::pvh_enabled field
2026-03-09 14:50 [PATCH v2 00/10] hw/i386/pc: Remove deprecated 3.1 machines Philippe Mathieu-Daudé
2026-03-09 14:50 ` [PATCH v2 01/10] hw/i386/pc: Remove deprecated pc-q35/pc-i440fx/xenfv " Philippe Mathieu-Daudé
@ 2026-03-09 14:50 ` Philippe Mathieu-Daudé
2026-03-10 14:25 ` Zhao Liu
2026-03-09 14:50 ` [PATCH v2 03/10] hw/i386/x86: Remove @pvh_enabled argument in x86_load_linux() Philippe Mathieu-Daudé
` (9 subsequent siblings)
11 siblings, 1 reply; 23+ messages in thread
From: Philippe Mathieu-Daudé @ 2026-03-09 14:50 UTC (permalink / raw)
To: qemu-devel
Cc: Zhao Liu, Yi Liu, Paolo Bonzini, Thomas Huth,
Philippe Mathieu-Daudé, Michael S. Tsirkin, Marcel Apfelbaum,
Richard Henderson, Eduardo Habkost
The PCMachineClass::pvh_enabled boolean was only used by
the pc-q35-3.1 and pc-i440fx-3.1 machines, which got removed.
Remove it.
Signed-off-by: Philippe Mathieu-Daudé <philmd@linaro.org>
Reviewed-by: Thomas Huth <thuth@redhat.com>
Message-Id: <20260307152635.83893-3-philmd@linaro.org>
---
include/hw/i386/pc.h | 3 ---
hw/i386/pc.c | 6 ++----
hw/i386/x86-common.c | 3 +--
3 files changed, 3 insertions(+), 9 deletions(-)
diff --git a/include/hw/i386/pc.h b/include/hw/i386/pc.h
index 5623660f5dd..908de5e1eab 100644
--- a/include/hw/i386/pc.h
+++ b/include/hw/i386/pc.h
@@ -110,9 +110,6 @@ struct PCMachineClass {
bool enforce_amd_1tb_hole;
bool isa_bios_alias;
- /* use PVH to load kernels that support this feature */
- bool pvh_enabled;
-
/* create kvmclock device even when KVM PV features are not exposed */
bool kvmclock_create_always;
diff --git a/hw/i386/pc.c b/hw/i386/pc.c
index 052226baa57..3fc2f0a057e 100644
--- a/hw/i386/pc.c
+++ b/hw/i386/pc.c
@@ -588,7 +588,6 @@ void xen_load_linux(PCMachineState *pcms)
{
int i;
FWCfgState *fw_cfg;
- PCMachineClass *pcmc = PC_MACHINE_GET_CLASS(pcms);
X86MachineState *x86ms = X86_MACHINE(pcms);
assert(MACHINE(pcms)->kernel_filename != NULL);
@@ -598,7 +597,7 @@ void xen_load_linux(PCMachineState *pcms)
fw_cfg_add_i16(fw_cfg, FW_CFG_NB_CPUS, x86ms->boot_cpus);
rom_set_fw(fw_cfg);
- x86_load_linux(x86ms, fw_cfg, PC_FW_DATA, pcmc->pvh_enabled);
+ x86_load_linux(x86ms, fw_cfg, PC_FW_DATA, true);
for (i = 0; i < nb_option_roms; i++) {
assert(!strcmp(option_rom[i].name, "linuxboot_dma.bin") ||
!strcmp(option_rom[i].name, "pvh.bin") ||
@@ -932,7 +931,7 @@ void pc_memory_init(PCMachineState *pcms,
}
if (linux_boot) {
- x86_load_linux(x86ms, fw_cfg, PC_FW_DATA, pcmc->pvh_enabled);
+ x86_load_linux(x86ms, fw_cfg, PC_FW_DATA, true);
}
for (i = 0; i < nb_option_roms; i++) {
@@ -1673,7 +1672,6 @@ static void pc_machine_class_init(ObjectClass *oc, const void *data)
pcmc->has_reserved_memory = true;
pcmc->enforce_amd_1tb_hole = true;
pcmc->isa_bios_alias = true;
- pcmc->pvh_enabled = true;
pcmc->kvmclock_create_always = true;
x86mc->apic_xrupt_override = true;
assert(!mc->get_hotplug_handler);
diff --git a/hw/i386/x86-common.c b/hw/i386/x86-common.c
index a420112666a..db8d4e855f4 100644
--- a/hw/i386/x86-common.c
+++ b/hw/i386/x86-common.c
@@ -704,8 +704,7 @@ void x86_load_linux(X86MachineState *x86ms,
* saving the PVH entry point used by the x86/HVM direct boot ABI.
* If load_elfboot() is successful, populate the fw_cfg info.
*/
- if (pvh_enabled &&
- load_elfboot(kernel_filename, kernel_size,
+ if (load_elfboot(kernel_filename, kernel_size,
header, pvh_start_addr, fw_cfg)) {
fclose(f);
--
2.53.0
^ permalink raw reply related [flat|nested] 23+ messages in thread
* [PATCH v2 03/10] hw/i386/x86: Remove @pvh_enabled argument in x86_load_linux()
2026-03-09 14:50 [PATCH v2 00/10] hw/i386/pc: Remove deprecated 3.1 machines Philippe Mathieu-Daudé
2026-03-09 14:50 ` [PATCH v2 01/10] hw/i386/pc: Remove deprecated pc-q35/pc-i440fx/xenfv " Philippe Mathieu-Daudé
2026-03-09 14:50 ` [PATCH v2 02/10] hw/i386/pc: Remove PCMachineClass::pvh_enabled field Philippe Mathieu-Daudé
@ 2026-03-09 14:50 ` Philippe Mathieu-Daudé
2026-03-10 14:26 ` Zhao Liu
2026-03-09 14:50 ` [PATCH v2 04/10] hw/core/boards: Remove MachineClass::smbus_no_migration_support field Philippe Mathieu-Daudé
` (8 subsequent siblings)
11 siblings, 1 reply; 23+ messages in thread
From: Philippe Mathieu-Daudé @ 2026-03-09 14:50 UTC (permalink / raw)
To: qemu-devel
Cc: Zhao Liu, Yi Liu, Paolo Bonzini, Thomas Huth,
Philippe Mathieu-Daudé, Sergio Lopez, Richard Henderson,
Eduardo Habkost, Michael S. Tsirkin, Marcel Apfelbaum,
Alexander Graf, Dorjoy Chowdhury
x86_load_linux()'s @pvh_enabled is now always %true: remove it.
Signed-off-by: Philippe Mathieu-Daudé <philmd@linaro.org>
Reviewed-by: Thomas Huth <thuth@redhat.com>
Message-Id: <20260307152635.83893-4-philmd@linaro.org>
---
include/hw/i386/microvm.h | 2 +-
include/hw/i386/x86.h | 3 +--
hw/i386/microvm.c | 2 +-
hw/i386/nitro_enclave.c | 2 +-
hw/i386/pc.c | 4 ++--
hw/i386/x86-common.c | 3 +--
6 files changed, 7 insertions(+), 9 deletions(-)
diff --git a/include/hw/i386/microvm.h b/include/hw/i386/microvm.h
index 6b9a5065272..184b7a8c094 100644
--- a/include/hw/i386/microvm.h
+++ b/include/hw/i386/microvm.h
@@ -79,7 +79,7 @@ struct MicrovmMachineClass {
HotplugHandler *(*orig_hotplug_handler)(MachineState *machine,
DeviceState *dev);
void (*x86_load_linux)(X86MachineState *x86ms, FWCfgState *fw_cfg,
- int acpi_data_size, bool pvh_enabled);
+ int acpi_data_size);
};
struct MicrovmMachineState {
diff --git a/include/hw/i386/x86.h b/include/hw/i386/x86.h
index a85a5600ce9..71fe6b5e122 100644
--- a/include/hw/i386/x86.h
+++ b/include/hw/i386/x86.h
@@ -129,8 +129,7 @@ void x86_bios_rom_reload(X86MachineState *x86ms);
void x86_load_linux(X86MachineState *x86ms,
FWCfgState *fw_cfg,
- int acpi_data_size,
- bool pvh_enabled);
+ int acpi_data_size);
bool x86_machine_is_smm_enabled(const X86MachineState *x86ms);
bool x86_machine_is_acpi_enabled(const X86MachineState *x86ms);
diff --git a/hw/i386/microvm.c b/hw/i386/microvm.c
index 7ff20512636..5a7889f21b8 100644
--- a/hw/i386/microvm.c
+++ b/hw/i386/microvm.c
@@ -330,7 +330,7 @@ static void microvm_memory_init(MicrovmMachineState *mms)
rom_set_fw(fw_cfg);
if (machine->kernel_filename != NULL) {
- mmc->x86_load_linux(x86ms, fw_cfg, 0, true);
+ mmc->x86_load_linux(x86ms, fw_cfg, 0);
}
if (mms->option_roms) {
diff --git a/hw/i386/nitro_enclave.c b/hw/i386/nitro_enclave.c
index 640b1d8c548..8e72dc49f34 100644
--- a/hw/i386/nitro_enclave.c
+++ b/hw/i386/nitro_enclave.c
@@ -199,7 +199,7 @@ static void x86_load_eif(X86MachineState *x86ms, FWCfgState *fw_cfg,
machine->kernel_cmdline = eif_cmdline;
}
- x86_load_linux(x86ms, fw_cfg, 0, true);
+ x86_load_linux(x86ms, fw_cfg, 0);
unlink(machine->kernel_filename);
unlink(machine->initrd_filename);
diff --git a/hw/i386/pc.c b/hw/i386/pc.c
index 3fc2f0a057e..00581dd8b44 100644
--- a/hw/i386/pc.c
+++ b/hw/i386/pc.c
@@ -597,7 +597,7 @@ void xen_load_linux(PCMachineState *pcms)
fw_cfg_add_i16(fw_cfg, FW_CFG_NB_CPUS, x86ms->boot_cpus);
rom_set_fw(fw_cfg);
- x86_load_linux(x86ms, fw_cfg, PC_FW_DATA, true);
+ x86_load_linux(x86ms, fw_cfg, PC_FW_DATA);
for (i = 0; i < nb_option_roms; i++) {
assert(!strcmp(option_rom[i].name, "linuxboot_dma.bin") ||
!strcmp(option_rom[i].name, "pvh.bin") ||
@@ -931,7 +931,7 @@ void pc_memory_init(PCMachineState *pcms,
}
if (linux_boot) {
- x86_load_linux(x86ms, fw_cfg, PC_FW_DATA, true);
+ x86_load_linux(x86ms, fw_cfg, PC_FW_DATA);
}
for (i = 0; i < nb_option_roms; i++) {
diff --git a/hw/i386/x86-common.c b/hw/i386/x86-common.c
index db8d4e855f4..fde05fa7d7b 100644
--- a/hw/i386/x86-common.c
+++ b/hw/i386/x86-common.c
@@ -642,8 +642,7 @@ static bool load_elfboot(const char *kernel_filename,
void x86_load_linux(X86MachineState *x86ms,
FWCfgState *fw_cfg,
- int acpi_data_size,
- bool pvh_enabled)
+ int acpi_data_size)
{
uint16_t protocol;
int setup_size, kernel_size, cmdline_size;
--
2.53.0
^ permalink raw reply related [flat|nested] 23+ messages in thread
* [PATCH v2 04/10] hw/core/boards: Remove MachineClass::smbus_no_migration_support field
2026-03-09 14:50 [PATCH v2 00/10] hw/i386/pc: Remove deprecated 3.1 machines Philippe Mathieu-Daudé
` (2 preceding siblings ...)
2026-03-09 14:50 ` [PATCH v2 03/10] hw/i386/x86: Remove @pvh_enabled argument in x86_load_linux() Philippe Mathieu-Daudé
@ 2026-03-09 14:50 ` Philippe Mathieu-Daudé
2026-03-09 15:41 ` Corey Minyard
2026-03-10 14:27 ` Zhao Liu
2026-03-09 14:50 ` [PATCH v2 05/10] hw/i386/pc: Remove pc_compat_3_1[] array Philippe Mathieu-Daudé
` (7 subsequent siblings)
11 siblings, 2 replies; 23+ messages in thread
From: Philippe Mathieu-Daudé @ 2026-03-09 14:50 UTC (permalink / raw)
To: qemu-devel
Cc: Zhao Liu, Yi Liu, Paolo Bonzini, Thomas Huth,
Philippe Mathieu-Daudé, Michael S. Tsirkin, Igor Mammedov,
Ani Sinha, Marcel Apfelbaum, Aurelien Jarno, Corey Minyard,
Eduardo Habkost, Yanan Wang
The MachineClass::smbus_no_migration_support boolean was only used
by the pc-q35-3.1 and pc-i440fx-3.1 machines, which got removed.
Remove it, along with pm_smbus_vmstate_needed().
Use the unconditional VMSTATE_BOOL() and VMSTATE_STRUCT() macros.
Signed-off-by: Philippe Mathieu-Daudé <philmd@linaro.org>
Reviewed-by: Thomas Huth <thuth@redhat.com>
Message-Id: <20260307152635.83893-5-philmd@linaro.org>
---
include/hw/core/boards.h | 1 -
include/hw/i2c/pm_smbus.h | 7 -------
hw/acpi/piix4.c | 8 +-------
hw/i2c/pm_smbus.c | 7 -------
hw/i2c/smbus_eeprom.c | 4 +---
hw/i2c/smbus_ich9.c | 10 ++--------
6 files changed, 4 insertions(+), 33 deletions(-)
diff --git a/include/hw/core/boards.h b/include/hw/core/boards.h
index 9ad2a7d5c97..e15dbcea83b 100644
--- a/include/hw/core/boards.h
+++ b/include/hw/core/boards.h
@@ -314,7 +314,6 @@ struct MachineClass {
bool auto_enable_numa_with_memhp;
bool auto_enable_numa_with_memdev;
bool ignore_boot_device_suffixes;
- bool smbus_no_migration_support;
bool nvdimm_supported;
bool numa_mem_supported;
bool auto_enable_numa;
diff --git a/include/hw/i2c/pm_smbus.h b/include/hw/i2c/pm_smbus.h
index dafe0df4f69..62bbd45e803 100644
--- a/include/hw/i2c/pm_smbus.h
+++ b/include/hw/i2c/pm_smbus.h
@@ -44,13 +44,6 @@ typedef struct PMSMBus {
void pm_smbus_init(DeviceState *parent, PMSMBus *smb, bool force_aux_blk);
-/*
- * For backwards compatibility on migration, older versions don't have
- * working migration for pm_smbus, this lets us ignore the migrations
- * for older machine versions.
- */
-bool pm_smbus_vmstate_needed(void);
-
extern const VMStateDescription pmsmb_vmstate;
#endif /* PM_SMBUS_H */
diff --git a/hw/acpi/piix4.c b/hw/acpi/piix4.c
index 138ac3d3940..43860d12278 100644
--- a/hw/acpi/piix4.c
+++ b/hw/acpi/piix4.c
@@ -205,11 +205,6 @@ static const VMStateDescription vmstate_cpuhp_state = {
}
};
-static bool piix4_vmstate_need_smbus(void *opaque, int version_id)
-{
- return pm_smbus_vmstate_needed();
-}
-
/*
* This is a fudge to turn off the acpi_index field,
* whose test was always broken on piix4 with 6.2 and older machine types.
@@ -238,8 +233,7 @@ static const VMStateDescription vmstate_acpi = {
VMSTATE_UINT16(ar.pm1.evt.en, PIIX4PMState),
VMSTATE_UINT16(ar.pm1.cnt.cnt, PIIX4PMState),
VMSTATE_STRUCT(apm, PIIX4PMState, 0, vmstate_apm, APMState),
- VMSTATE_STRUCT_TEST(smb, PIIX4PMState, piix4_vmstate_need_smbus, 3,
- pmsmb_vmstate, PMSMBus),
+ VMSTATE_STRUCT(smb, PIIX4PMState, 3, pmsmb_vmstate, PMSMBus),
VMSTATE_TIMER_PTR(ar.tmr.timer, PIIX4PMState),
VMSTATE_INT64(ar.tmr.overflow_time, PIIX4PMState),
VMSTATE_STRUCT(ar.gpe, PIIX4PMState, 2, vmstate_gpe, ACPIGPE),
diff --git a/hw/i2c/pm_smbus.c b/hw/i2c/pm_smbus.c
index ead53d2724d..5654d516382 100644
--- a/hw/i2c/pm_smbus.c
+++ b/hw/i2c/pm_smbus.c
@@ -443,13 +443,6 @@ static const MemoryRegionOps pm_smbus_ops = {
.endianness = DEVICE_LITTLE_ENDIAN,
};
-bool pm_smbus_vmstate_needed(void)
-{
- MachineClass *mc = MACHINE_GET_CLASS(qdev_get_machine());
-
- return !mc->smbus_no_migration_support;
-}
-
const VMStateDescription pmsmb_vmstate = {
.name = "pmsmb",
.version_id = 1,
diff --git a/hw/i2c/smbus_eeprom.c b/hw/i2c/smbus_eeprom.c
index d9ac556a0ab..693d4762205 100644
--- a/hw/i2c/smbus_eeprom.c
+++ b/hw/i2c/smbus_eeprom.c
@@ -88,11 +88,9 @@ static int eeprom_write_data(SMBusDevice *dev, uint8_t *buf, uint8_t len)
static bool smbus_eeprom_vmstate_needed(void *opaque)
{
- MachineClass *mc = MACHINE_GET_CLASS(qdev_get_machine());
SMBusEEPROMDevice *eeprom = opaque;
- return (eeprom->accessed || smbus_vmstate_needed(&eeprom->smbusdev)) &&
- !mc->smbus_no_migration_support;
+ return eeprom->accessed || smbus_vmstate_needed(&eeprom->smbusdev);
}
static const VMStateDescription vmstate_smbus_eeprom = {
diff --git a/hw/i2c/smbus_ich9.c b/hw/i2c/smbus_ich9.c
index 956c9b59bbc..51513e73fde 100644
--- a/hw/i2c/smbus_ich9.c
+++ b/hw/i2c/smbus_ich9.c
@@ -41,20 +41,14 @@ struct ICH9SMBState {
PMSMBus smb;
};
-static bool ich9_vmstate_need_smbus(void *opaque, int version_id)
-{
- return pm_smbus_vmstate_needed();
-}
-
static const VMStateDescription vmstate_ich9_smbus = {
.name = "ich9_smb",
.version_id = 1,
.minimum_version_id = 1,
.fields = (const VMStateField[]) {
VMSTATE_PCI_DEVICE(dev, ICH9SMBState),
- VMSTATE_BOOL_TEST(irq_enabled, ICH9SMBState, ich9_vmstate_need_smbus),
- VMSTATE_STRUCT_TEST(smb, ICH9SMBState, ich9_vmstate_need_smbus, 1,
- pmsmb_vmstate, PMSMBus),
+ VMSTATE_BOOL(irq_enabled, ICH9SMBState),
+ VMSTATE_STRUCT(smb, ICH9SMBState, 1, pmsmb_vmstate, PMSMBus),
VMSTATE_END_OF_LIST()
}
};
--
2.53.0
^ permalink raw reply related [flat|nested] 23+ messages in thread
* [PATCH v2 05/10] hw/i386/pc: Remove pc_compat_3_1[] array
2026-03-09 14:50 [PATCH v2 00/10] hw/i386/pc: Remove deprecated 3.1 machines Philippe Mathieu-Daudé
` (3 preceding siblings ...)
2026-03-09 14:50 ` [PATCH v2 04/10] hw/core/boards: Remove MachineClass::smbus_no_migration_support field Philippe Mathieu-Daudé
@ 2026-03-09 14:50 ` Philippe Mathieu-Daudé
2026-03-10 14:28 ` Zhao Liu
2026-03-09 14:50 ` [PATCH v2 06/10] hw/i386/iommu: Remove IntelIOMMUState::dma_drain field Philippe Mathieu-Daudé
` (6 subsequent siblings)
11 siblings, 1 reply; 23+ messages in thread
From: Philippe Mathieu-Daudé @ 2026-03-09 14:50 UTC (permalink / raw)
To: qemu-devel
Cc: Zhao Liu, Yi Liu, Paolo Bonzini, Thomas Huth,
Philippe Mathieu-Daudé, Michael S. Tsirkin, Marcel Apfelbaum,
Richard Henderson, Eduardo Habkost
The pc_compat_3_1[] array was only used by the pc-q35-3.1
and pc-i440fx-3.1 machines, which got removed. Remove it.
Signed-off-by: Philippe Mathieu-Daudé <philmd@linaro.org>
Reviewed-by: Thomas Huth <thuth@redhat.com>
Message-Id: <20260307152635.83893-6-philmd@linaro.org>
---
include/hw/i386/pc.h | 3 ---
hw/i386/pc.c | 25 -------------------------
2 files changed, 28 deletions(-)
diff --git a/include/hw/i386/pc.h b/include/hw/i386/pc.h
index 908de5e1eab..4e1dd436ab7 100644
--- a/include/hw/i386/pc.h
+++ b/include/hw/i386/pc.h
@@ -271,9 +271,6 @@ extern const size_t pc_compat_4_1_len;
extern GlobalProperty pc_compat_4_0[];
extern const size_t pc_compat_4_0_len;
-extern GlobalProperty pc_compat_3_1[];
-extern const size_t pc_compat_3_1_len;
-
#define DEFINE_PC_MACHINE(suffix, namestr, initfn, optsfn) \
static void pc_machine_##suffix##_class_init(ObjectClass *oc, \
const void *data) \
diff --git a/hw/i386/pc.c b/hw/i386/pc.c
index 00581dd8b44..f33e3f72656 100644
--- a/hw/i386/pc.c
+++ b/hw/i386/pc.c
@@ -180,31 +180,6 @@ const size_t pc_compat_4_1_len = G_N_ELEMENTS(pc_compat_4_1);
GlobalProperty pc_compat_4_0[] = {};
const size_t pc_compat_4_0_len = G_N_ELEMENTS(pc_compat_4_0);
-GlobalProperty pc_compat_3_1[] = {
- { "intel-iommu", "dma-drain", "off" },
- { "Opteron_G3" "-" TYPE_X86_CPU, "rdtscp", "off" },
- { "Opteron_G4" "-" TYPE_X86_CPU, "rdtscp", "off" },
- { "Opteron_G4" "-" TYPE_X86_CPU, "npt", "off" },
- { "Opteron_G4" "-" TYPE_X86_CPU, "nrip-save", "off" },
- { "Opteron_G5" "-" TYPE_X86_CPU, "rdtscp", "off" },
- { "Opteron_G5" "-" TYPE_X86_CPU, "npt", "off" },
- { "Opteron_G5" "-" TYPE_X86_CPU, "nrip-save", "off" },
- { "EPYC" "-" TYPE_X86_CPU, "npt", "off" },
- { "EPYC" "-" TYPE_X86_CPU, "nrip-save", "off" },
- { "EPYC-IBPB" "-" TYPE_X86_CPU, "npt", "off" },
- { "EPYC-IBPB" "-" TYPE_X86_CPU, "nrip-save", "off" },
- { "Skylake-Client" "-" TYPE_X86_CPU, "mpx", "on" },
- { "Skylake-Client-IBRS" "-" TYPE_X86_CPU, "mpx", "on" },
- { "Skylake-Server" "-" TYPE_X86_CPU, "mpx", "on" },
- { "Skylake-Server-IBRS" "-" TYPE_X86_CPU, "mpx", "on" },
- { "Cascadelake-Server" "-" TYPE_X86_CPU, "mpx", "on" },
- { "Icelake-Client" "-" TYPE_X86_CPU, "mpx", "on" },
- { "Icelake-Server" "-" TYPE_X86_CPU, "mpx", "on" },
- { "Cascadelake-Server" "-" TYPE_X86_CPU, "stepping", "5" },
- { TYPE_X86_CPU, "x-intel-pt-auto-level", "off" },
-};
-const size_t pc_compat_3_1_len = G_N_ELEMENTS(pc_compat_3_1);
-
/*
* @PC_FW_DATA:
* Size of the chunk of memory at the top of RAM for the BIOS ACPI tables
--
2.53.0
^ permalink raw reply related [flat|nested] 23+ messages in thread
* [PATCH v2 06/10] hw/i386/iommu: Remove IntelIOMMUState::dma_drain field
2026-03-09 14:50 [PATCH v2 00/10] hw/i386/pc: Remove deprecated 3.1 machines Philippe Mathieu-Daudé
` (4 preceding siblings ...)
2026-03-09 14:50 ` [PATCH v2 05/10] hw/i386/pc: Remove pc_compat_3_1[] array Philippe Mathieu-Daudé
@ 2026-03-09 14:50 ` Philippe Mathieu-Daudé
2026-03-10 6:07 ` CLEMENT MATHIEU--DRIF
2026-03-10 14:29 ` Zhao Liu
2026-03-09 14:50 ` [PATCH v2 07/10] target/i386/cpu: Remove X86CPU::intel_pt_auto_level field Philippe Mathieu-Daudé
` (5 subsequent siblings)
11 siblings, 2 replies; 23+ messages in thread
From: Philippe Mathieu-Daudé @ 2026-03-09 14:50 UTC (permalink / raw)
To: qemu-devel
Cc: Zhao Liu, Yi Liu, Paolo Bonzini, Thomas Huth,
Philippe Mathieu-Daudé, Michael S. Tsirkin, Jason Wang,
Clément Mathieu--Drif, Richard Henderson, Eduardo Habkost,
Marcel Apfelbaum
The IntelIOMMUState::dma_drain boolean was only set in
the pc_compat_3_1[] array, via the 'dma-drain=off' property.
We removed all machines using that array, lets remove that
property and all the code around it.
Signed-off-by: Philippe Mathieu-Daudé <philmd@linaro.org>
Reviewed-by: Thomas Huth <thuth@redhat.com>
Message-Id: <20260307152635.83893-7-philmd@linaro.org>
---
include/hw/i386/intel_iommu.h | 1 -
hw/i386/intel_iommu.c | 11 +----------
2 files changed, 1 insertion(+), 11 deletions(-)
diff --git a/include/hw/i386/intel_iommu.h b/include/hw/i386/intel_iommu.h
index 54c2b6b77a0..e44ce318417 100644
--- a/include/hw/i386/intel_iommu.h
+++ b/include/hw/i386/intel_iommu.h
@@ -314,7 +314,6 @@ struct IntelIOMMUState {
bool intr_eime; /* Extended interrupt mode enabled */
OnOffAuto intr_eim; /* Toggle for EIM cabability */
uint8_t aw_bits; /* Host/IOVA address width (in bits) */
- bool dma_drain; /* Whether DMA r/w draining enabled */
bool pasid; /* Whether to support PASID */
bool fs1gp; /* First Stage 1-GByte Page Support */
diff --git a/hw/i386/intel_iommu.c b/hw/i386/intel_iommu.c
index d24ba989bfc..f395fa248c0 100644
--- a/hw/i386/intel_iommu.c
+++ b/hw/i386/intel_iommu.c
@@ -4205,7 +4205,6 @@ static const Property vtd_properties[] = {
DEFINE_PROP_BOOL("snoop-control", IntelIOMMUState, snoop_control, false),
DEFINE_PROP_BOOL("x-pasid-mode", IntelIOMMUState, pasid, false),
DEFINE_PROP_BOOL("svm", IntelIOMMUState, svm, false),
- DEFINE_PROP_BOOL("dma-drain", IntelIOMMUState, dma_drain, true),
DEFINE_PROP_BOOL("stale-tm", IntelIOMMUState, stale_tm, false),
DEFINE_PROP_BOOL("fs1gp", IntelIOMMUState, fs1gp, true),
};
@@ -5000,11 +4999,8 @@ static void vtd_cap_init(IntelIOMMUState *s)
X86IOMMUState *x86_iommu = X86_IOMMU_DEVICE(s);
s->cap = VTD_CAP_FRO | VTD_CAP_NFR | VTD_CAP_ND | VTD_ECAP_PT |
- VTD_CAP_MAMV | VTD_CAP_PSI | VTD_CAP_SSLPS |
+ VTD_CAP_MAMV | VTD_CAP_PSI | VTD_CAP_SSLPS | VTD_CAP_DRAIN |
VTD_CAP_ESRTPS | VTD_CAP_MGAW(s->aw_bits);
- if (s->dma_drain) {
- s->cap |= VTD_CAP_DRAIN;
- }
if (x86_iommu->dma_translation) {
if (s->aw_bits >= VTD_HOST_AW_39BIT) {
s->cap |= VTD_CAP_SAGAW_39bit;
@@ -5582,11 +5578,6 @@ static bool vtd_decide_config(IntelIOMMUState *s, Error **errp)
return false;
}
- if (s->scalable_mode && !s->dma_drain) {
- error_setg(errp, "Need to set dma_drain for scalable mode");
- return false;
- }
-
if (s->pasid && !s->scalable_mode) {
error_setg(errp, "Need to set scalable mode for PASID");
return false;
--
2.53.0
^ permalink raw reply related [flat|nested] 23+ messages in thread
* [PATCH v2 07/10] target/i386/cpu: Remove X86CPU::intel_pt_auto_level field
2026-03-09 14:50 [PATCH v2 00/10] hw/i386/pc: Remove deprecated 3.1 machines Philippe Mathieu-Daudé
` (5 preceding siblings ...)
2026-03-09 14:50 ` [PATCH v2 06/10] hw/i386/iommu: Remove IntelIOMMUState::dma_drain field Philippe Mathieu-Daudé
@ 2026-03-09 14:50 ` Philippe Mathieu-Daudé
2026-03-10 14:31 ` Zhao Liu
2026-03-09 14:50 ` [PATCH v2 08/10] hw/core/machine: Remove the hw_compat_3_1[] array Philippe Mathieu-Daudé
` (4 subsequent siblings)
11 siblings, 1 reply; 23+ messages in thread
From: Philippe Mathieu-Daudé @ 2026-03-09 14:50 UTC (permalink / raw)
To: qemu-devel
Cc: Zhao Liu, Yi Liu, Paolo Bonzini, Thomas Huth,
Philippe Mathieu-Daudé
The X86CPU::intel_pt_auto_level boolean was only set in the
pc_compat_3_1[] array, via the 'x-intel-pt-auto-level=off'
property. We removed all machines using that array, let's
emove that property and all the code around it.
Signed-off-by: Philippe Mathieu-Daudé <philmd@linaro.org>
Reviewed-by: Thomas Huth <thuth@redhat.com>
Message-Id: <20260307152635.83893-8-philmd@linaro.org>
---
target/i386/cpu.h | 3 ---
target/i386/cpu.c | 10 +---------
2 files changed, 1 insertion(+), 12 deletions(-)
diff --git a/target/i386/cpu.h b/target/i386/cpu.h
index 2b70d56e9b0..5a62aa61579 100644
--- a/target/i386/cpu.h
+++ b/target/i386/cpu.h
@@ -2457,9 +2457,6 @@ struct ArchCPU {
/* Only advertise TOPOEXT features that AMD defines */
bool amd_topoext_features_only;
- /* Enable auto level-increase for Intel Processor Trace leave */
- bool intel_pt_auto_level;
-
/* if true fill the top bits of the MTRR_PHYSMASKn variable range */
bool fill_mtrr_mask;
diff --git a/target/i386/cpu.c b/target/i386/cpu.c
index c77addd2c25..0a29ff805fa 100644
--- a/target/i386/cpu.c
+++ b/target/i386/cpu.c
@@ -9565,13 +9565,7 @@ void x86_cpu_expand_features(X86CPU *cpu, Error **errp)
/* Intel Processor Trace requires CPUID[0x14] */
if ((env->features[FEAT_7_0_EBX] & CPUID_7_0_EBX_INTEL_PT)) {
- if (cpu->intel_pt_auto_level) {
- x86_cpu_adjust_level(cpu, &cpu->env.cpuid_min_level, 0x14);
- } else if (cpu->env.cpuid_min_level < 0x14) {
- mark_unavailable_features(cpu, FEAT_7_0_EBX,
- CPUID_7_0_EBX_INTEL_PT,
- "Intel PT need CPUID leaf 0x14, please set by \"-cpu ...,intel-pt=on,min-level=0x14\"");
- }
+ x86_cpu_adjust_level(cpu, &cpu->env.cpuid_min_level, 0x14);
}
/*
@@ -10589,8 +10583,6 @@ static const Property x86_cpu_properties[] = {
* to the specific Windows version being used."
*/
DEFINE_PROP_INT32("x-hv-max-vps", X86CPU, hv_max_vps, -1),
- DEFINE_PROP_BOOL("x-intel-pt-auto-level", X86CPU, intel_pt_auto_level,
- true),
DEFINE_PROP_BOOL("x-l1-cache-per-thread", X86CPU, l1_cache_per_core, true),
DEFINE_PROP_BOOL("x-force-cpuid-0x1f", X86CPU, force_cpuid_0x1f, false),
--
2.53.0
^ permalink raw reply related [flat|nested] 23+ messages in thread
* [PATCH v2 08/10] hw/core/machine: Remove the hw_compat_3_1[] array
2026-03-09 14:50 [PATCH v2 00/10] hw/i386/pc: Remove deprecated 3.1 machines Philippe Mathieu-Daudé
` (6 preceding siblings ...)
2026-03-09 14:50 ` [PATCH v2 07/10] target/i386/cpu: Remove X86CPU::intel_pt_auto_level field Philippe Mathieu-Daudé
@ 2026-03-09 14:50 ` Philippe Mathieu-Daudé
2026-03-10 14:31 ` Zhao Liu
2026-03-09 14:50 ` [PATCH v2 09/10] hw/pci-bridge/pcie_rp: Remove PCIESlot::disable_acs field Philippe Mathieu-Daudé
` (3 subsequent siblings)
11 siblings, 1 reply; 23+ messages in thread
From: Philippe Mathieu-Daudé @ 2026-03-09 14:50 UTC (permalink / raw)
To: qemu-devel
Cc: Zhao Liu, Yi Liu, Paolo Bonzini, Thomas Huth,
Philippe Mathieu-Daudé, Eduardo Habkost, Marcel Apfelbaum,
Yanan Wang
The hw_compat_3_1[] array was only used by the pc-q35-3.1
and pc-i440fx-3.1 machines, which got removed. Remove it.
Signed-off-by: Philippe Mathieu-Daudé <philmd@linaro.org>
Reviewed-by: Thomas Huth <thuth@redhat.com>
Message-Id: <20260307152635.83893-9-philmd@linaro.org>
---
include/hw/core/boards.h | 3 ---
hw/core/machine.c | 17 -----------------
2 files changed, 20 deletions(-)
diff --git a/include/hw/core/boards.h b/include/hw/core/boards.h
index e15dbcea83b..9155e0cc9ed 100644
--- a/include/hw/core/boards.h
+++ b/include/hw/core/boards.h
@@ -867,7 +867,4 @@ extern const size_t hw_compat_4_1_len;
extern GlobalProperty hw_compat_4_0[];
extern const size_t hw_compat_4_0_len;
-extern GlobalProperty hw_compat_3_1[];
-extern const size_t hw_compat_3_1_len;
-
#endif
diff --git a/hw/core/machine.c b/hw/core/machine.c
index 162600425b0..9a3d826c3cb 100644
--- a/hw/core/machine.c
+++ b/hw/core/machine.c
@@ -221,23 +221,6 @@ GlobalProperty hw_compat_4_0[] = {
};
const size_t hw_compat_4_0_len = G_N_ELEMENTS(hw_compat_4_0);
-GlobalProperty hw_compat_3_1[] = {
- { "pcie-root-port", "x-speed", "2_5" },
- { "pcie-root-port", "x-width", "1" },
- { "memory-backend-file", "x-use-canonical-path-for-ramblock-id", "true" },
- { "memory-backend-memfd", "x-use-canonical-path-for-ramblock-id", "true" },
- { "tpm-crb", "ppi", "false" },
- { "tpm-tis", "ppi", "false" },
- { "usb-kbd", "serial", "42" },
- { "usb-mouse", "serial", "42" },
- { "usb-tablet", "serial", "42" },
- { "virtio-blk-device", "discard", "false" },
- { "virtio-blk-device", "write-zeroes", "false" },
- { "virtio-balloon-device", "qemu-4-0-config-size", "false" },
- { "pcie-root-port-base", "disable-acs", "true" }, /* Added in 4.1 */
-};
-const size_t hw_compat_3_1_len = G_N_ELEMENTS(hw_compat_3_1);
-
MachineState *current_machine;
static char *machine_get_kernel(Object *obj, Error **errp)
--
2.53.0
^ permalink raw reply related [flat|nested] 23+ messages in thread
* [PATCH v2 09/10] hw/pci-bridge/pcie_rp: Remove PCIESlot::disable_acs field
2026-03-09 14:50 [PATCH v2 00/10] hw/i386/pc: Remove deprecated 3.1 machines Philippe Mathieu-Daudé
` (7 preceding siblings ...)
2026-03-09 14:50 ` [PATCH v2 08/10] hw/core/machine: Remove the hw_compat_3_1[] array Philippe Mathieu-Daudé
@ 2026-03-09 14:50 ` Philippe Mathieu-Daudé
2026-03-09 14:50 ` [PATCH v2 10/10] hw/tpm: Remove CRBState::ppi_enabled field Philippe Mathieu-Daudé
` (2 subsequent siblings)
11 siblings, 0 replies; 23+ messages in thread
From: Philippe Mathieu-Daudé @ 2026-03-09 14:50 UTC (permalink / raw)
To: qemu-devel
Cc: Zhao Liu, Yi Liu, Paolo Bonzini, Thomas Huth,
Philippe Mathieu-Daudé, Michael S. Tsirkin, Marcel Apfelbaum
The PCIESlot::disable_acs boolean was only set in the
hw_compat_3_1[] array, via the 'disable-acs=true' property.
We removed all machines using that array, lets remove that
property and all the code around it.
Signed-off-by: Philippe Mathieu-Daudé <philmd@linaro.org>
Reviewed-by: Thomas Huth <thuth@redhat.com>
Message-Id: <20260307152635.83893-10-philmd@linaro.org>
---
include/hw/pci/pcie_port.h | 3 ---
hw/pci-bridge/pcie_root_port.c | 3 +--
2 files changed, 1 insertion(+), 5 deletions(-)
diff --git a/include/hw/pci/pcie_port.h b/include/hw/pci/pcie_port.h
index 53cd64c5edf..b28af067a66 100644
--- a/include/hw/pci/pcie_port.h
+++ b/include/hw/pci/pcie_port.h
@@ -60,9 +60,6 @@ struct PCIESlot {
PCIExpLinkWidth width;
bool flitmode;
- /* Disable ACS (really for a pcie_root_port) */
- bool disable_acs;
-
/* Indicates whether any type of hot-plug is allowed on the slot */
bool hotplug;
diff --git a/hw/pci-bridge/pcie_root_port.c b/hw/pci-bridge/pcie_root_port.c
index fe3ced56851..7c3e78010b4 100644
--- a/hw/pci-bridge/pcie_root_port.c
+++ b/hw/pci-bridge/pcie_root_port.c
@@ -117,7 +117,7 @@ static void rp_realize(PCIDevice *d, Error **errp)
pcie_aer_root_init(d);
rp_aer_vector_update(d);
- if (rpc->acs_offset && !s->disable_acs) {
+ if (rpc->acs_offset) {
pcie_acs_init(d, rpc->acs_offset);
}
return;
@@ -151,7 +151,6 @@ static void rp_exit(PCIDevice *d)
static const Property rp_props[] = {
DEFINE_PROP_BIT(COMPAT_PROP_PCP, PCIDevice, cap_present,
QEMU_PCIE_SLTCAP_PCP_BITNR, true),
- DEFINE_PROP_BOOL("disable-acs", PCIESlot, disable_acs, false),
};
static void rp_instance_post_init(Object *obj)
--
2.53.0
^ permalink raw reply related [flat|nested] 23+ messages in thread
* [PATCH v2 10/10] hw/tpm: Remove CRBState::ppi_enabled field
2026-03-09 14:50 [PATCH v2 00/10] hw/i386/pc: Remove deprecated 3.1 machines Philippe Mathieu-Daudé
` (8 preceding siblings ...)
2026-03-09 14:50 ` [PATCH v2 09/10] hw/pci-bridge/pcie_rp: Remove PCIESlot::disable_acs field Philippe Mathieu-Daudé
@ 2026-03-09 14:50 ` Philippe Mathieu-Daudé
2026-03-09 15:46 ` [PATCH v2 00/10] hw/i386/pc: Remove deprecated 3.1 machines Philippe Mathieu-Daudé
2026-03-10 14:48 ` Zhao Liu
11 siblings, 0 replies; 23+ messages in thread
From: Philippe Mathieu-Daudé @ 2026-03-09 14:50 UTC (permalink / raw)
To: qemu-devel
Cc: Zhao Liu, Yi Liu, Paolo Bonzini, Thomas Huth,
Philippe Mathieu-Daudé, Michael S. Tsirkin, Igor Mammedov,
Ani Sinha, Richard Henderson, Eduardo Habkost, Marcel Apfelbaum,
Stefan Berger
The CRBState::ppi_enabled boolean was only set in the
hw_compat_3_1[] array, via the 'ppi=false' property.
We removed all machines using that array, lets remove
that property and all the code around it.
Signed-off-by: Philippe Mathieu-Daudé <philmd@linaro.org>
Reviewed-by: Thomas Huth <thuth@redhat.com>
Message-Id: <20260307152635.83893-11-philmd@linaro.org>
---
hw/tpm/tpm_tis.h | 1 -
hw/acpi/tpm.c | 4 ----
hw/i386/acpi-build.c | 2 +-
hw/tpm/tpm_crb.c | 12 +++---------
hw/tpm/tpm_tis_common.c | 4 +---
hw/tpm/tpm_tis_isa.c | 7 ++-----
6 files changed, 7 insertions(+), 23 deletions(-)
diff --git a/hw/tpm/tpm_tis.h b/hw/tpm/tpm_tis.h
index 184632ff66b..0df45f0c716 100644
--- a/hw/tpm/tpm_tis.h
+++ b/hw/tpm/tpm_tis.h
@@ -75,7 +75,6 @@ typedef struct TPMState {
size_t be_buffer_size;
- bool ppi_enabled;
TPMPPI ppi;
} TPMState;
diff --git a/hw/acpi/tpm.c b/hw/acpi/tpm.c
index cdc02275365..922030a29bf 100644
--- a/hw/acpi/tpm.c
+++ b/hw/acpi/tpm.c
@@ -25,10 +25,6 @@ void tpm_build_ppi_acpi(TPMIf *tpm, Aml *dev)
Aml *method, *field, *ifctx, *ifctx2, *ifctx3, *func_mask,
*not_implemented, *pak, *tpm2, *tpm3, *pprm, *pprq, *zero, *one;
- if (!object_property_get_bool(OBJECT(tpm), "ppi", &error_abort)) {
- return;
- }
-
zero = aml_int(0);
one = aml_int(1);
func_mask = aml_int(TPM_PPI_FUNC_MASK);
diff --git a/hw/i386/acpi-build.c b/hw/i386/acpi-build.c
index f622b91b76a..6b7cd00c5db 100644
--- a/hw/i386/acpi-build.c
+++ b/hw/i386/acpi-build.c
@@ -2218,7 +2218,7 @@ void acpi_setup(void)
tables.tcpalog->data, acpi_data_len(tables.tcpalog));
tpm = tpm_find();
- if (tpm && object_property_get_bool(OBJECT(tpm), "ppi", &error_abort)) {
+ if (tpm) {
tpm_config = (FwCfgTPMConfig) {
.tpmppi_address = cpu_to_le32(TPM_PPI_ADDR_BASE),
.tpm_version = tpm_get_version(tpm),
diff --git a/hw/tpm/tpm_crb.c b/hw/tpm/tpm_crb.c
index 8723536f931..40ffc7b006b 100644
--- a/hw/tpm/tpm_crb.c
+++ b/hw/tpm/tpm_crb.c
@@ -43,7 +43,6 @@ struct CRBState {
size_t be_buffer_size;
- bool ppi_enabled;
TPMPPI ppi;
};
typedef struct CRBState CRBState;
@@ -228,16 +227,13 @@ static const VMStateDescription vmstate_tpm_crb = {
static const Property tpm_crb_properties[] = {
DEFINE_PROP_TPMBE("tpmdev", CRBState, tpmbe),
- DEFINE_PROP_BOOL("ppi", CRBState, ppi_enabled, true),
};
static void tpm_crb_reset(void *dev)
{
CRBState *s = CRB(dev);
- if (s->ppi_enabled) {
- tpm_ppi_reset(&s->ppi);
- }
+ tpm_ppi_reset(&s->ppi);
tpm_backend_reset(s->tpmbe);
memset(s->regs, 0, sizeof(s->regs));
@@ -303,10 +299,8 @@ static void tpm_crb_realize(DeviceState *dev, Error **errp)
memory_region_add_subregion(get_system_memory(),
TPM_CRB_ADDR_BASE + sizeof(s->regs), &s->cmdmem);
- if (s->ppi_enabled) {
- tpm_ppi_init(&s->ppi, get_system_memory(),
- TPM_PPI_ADDR_BASE, OBJECT(s));
- }
+ tpm_ppi_init(&s->ppi, get_system_memory(),
+ TPM_PPI_ADDR_BASE, OBJECT(s));
if (xen_enabled()) {
tpm_crb_reset(dev);
diff --git a/hw/tpm/tpm_tis_common.c b/hw/tpm/tpm_tis_common.c
index f594b15b8ab..712d64b60f1 100644
--- a/hw/tpm/tpm_tis_common.c
+++ b/hw/tpm/tpm_tis_common.c
@@ -821,9 +821,7 @@ void tpm_tis_reset(TPMState *s)
s->be_buffer_size = MIN(tpm_backend_get_buffer_size(s->be_driver),
TPM_TIS_BUFFER_MAX);
- if (s->ppi_enabled) {
- tpm_ppi_reset(&s->ppi);
- }
+ tpm_ppi_reset(&s->ppi);
tpm_backend_reset(s->be_driver);
s->active_locty = TPM_TIS_NO_LOCALITY;
diff --git a/hw/tpm/tpm_tis_isa.c b/hw/tpm/tpm_tis_isa.c
index 61e95434f5b..aadca4ed79b 100644
--- a/hw/tpm/tpm_tis_isa.c
+++ b/hw/tpm/tpm_tis_isa.c
@@ -94,7 +94,6 @@ static void tpm_tis_isa_reset(DeviceState *dev)
static const Property tpm_tis_isa_properties[] = {
DEFINE_PROP_UINT32("irq", TPMStateISA, state.irq_num, TPM_TIS_IRQ),
DEFINE_PROP_TPMBE("tpmdev", TPMStateISA, state.be_driver),
- DEFINE_PROP_BOOL("ppi", TPMStateISA, state.ppi_enabled, true),
};
static void tpm_tis_isa_initfn(Object *obj)
@@ -132,10 +131,8 @@ static void tpm_tis_isa_realizefn(DeviceState *dev, Error **errp)
memory_region_add_subregion(isa_address_space(ISA_DEVICE(dev)),
TPM_TIS_ADDR_BASE, &s->mmio);
- if (s->ppi_enabled) {
- tpm_ppi_init(&s->ppi, isa_address_space(ISA_DEVICE(dev)),
- TPM_PPI_ADDR_BASE, OBJECT(dev));
- }
+ tpm_ppi_init(&s->ppi, isa_address_space(ISA_DEVICE(dev)),
+ TPM_PPI_ADDR_BASE, OBJECT(dev));
}
static void build_tpm_tis_isa_aml(AcpiDevAmlIf *adev, Aml *scope)
--
2.53.0
^ permalink raw reply related [flat|nested] 23+ messages in thread
* Re: [PATCH v2 04/10] hw/core/boards: Remove MachineClass::smbus_no_migration_support field
2026-03-09 14:50 ` [PATCH v2 04/10] hw/core/boards: Remove MachineClass::smbus_no_migration_support field Philippe Mathieu-Daudé
@ 2026-03-09 15:41 ` Corey Minyard
2026-03-10 14:27 ` Zhao Liu
1 sibling, 0 replies; 23+ messages in thread
From: Corey Minyard @ 2026-03-09 15:41 UTC (permalink / raw)
To: Philippe Mathieu-Daudé
Cc: qemu-devel, Zhao Liu, Yi Liu, Paolo Bonzini, Thomas Huth,
Michael S. Tsirkin, Igor Mammedov, Ani Sinha, Marcel Apfelbaum,
Aurelien Jarno, Eduardo Habkost, Yanan Wang
[-- Attachment #1: Type: text/plain, Size: 5529 bytes --]
On Mon, Mar 09, 2026 at 03:50:06PM +0100, Philippe Mathieu-Daudé wrote:
> The MachineClass::smbus_no_migration_support boolean was only used
> by the pc-q35-3.1 and pc-i440fx-3.1 machines, which got removed.
> Remove it, along with pm_smbus_vmstate_needed().
>
> Use the unconditional VMSTATE_BOOL() and VMSTATE_STRUCT() macros.
Nice.
Acked-by: Corey Minyard <corey@minyard.net>
or do you want me to handle it?
-corey
>
> Signed-off-by: Philippe Mathieu-Daudé <philmd@linaro.org>
> Reviewed-by: Thomas Huth <thuth@redhat.com>
> Message-Id: <20260307152635.83893-5-philmd@linaro.org>
> ---
> include/hw/core/boards.h | 1 -
> include/hw/i2c/pm_smbus.h | 7 -------
> hw/acpi/piix4.c | 8 +-------
> hw/i2c/pm_smbus.c | 7 -------
> hw/i2c/smbus_eeprom.c | 4 +---
> hw/i2c/smbus_ich9.c | 10 ++--------
> 6 files changed, 4 insertions(+), 33 deletions(-)
>
> diff --git a/include/hw/core/boards.h b/include/hw/core/boards.h
> index 9ad2a7d5c97..e15dbcea83b 100644
> --- a/include/hw/core/boards.h
> +++ b/include/hw/core/boards.h
> @@ -314,7 +314,6 @@ struct MachineClass {
> bool auto_enable_numa_with_memhp;
> bool auto_enable_numa_with_memdev;
> bool ignore_boot_device_suffixes;
> - bool smbus_no_migration_support;
> bool nvdimm_supported;
> bool numa_mem_supported;
> bool auto_enable_numa;
> diff --git a/include/hw/i2c/pm_smbus.h b/include/hw/i2c/pm_smbus.h
> index dafe0df4f69..62bbd45e803 100644
> --- a/include/hw/i2c/pm_smbus.h
> +++ b/include/hw/i2c/pm_smbus.h
> @@ -44,13 +44,6 @@ typedef struct PMSMBus {
>
> void pm_smbus_init(DeviceState *parent, PMSMBus *smb, bool force_aux_blk);
>
> -/*
> - * For backwards compatibility on migration, older versions don't have
> - * working migration for pm_smbus, this lets us ignore the migrations
> - * for older machine versions.
> - */
> -bool pm_smbus_vmstate_needed(void);
> -
> extern const VMStateDescription pmsmb_vmstate;
>
> #endif /* PM_SMBUS_H */
> diff --git a/hw/acpi/piix4.c b/hw/acpi/piix4.c
> index 138ac3d3940..43860d12278 100644
> --- a/hw/acpi/piix4.c
> +++ b/hw/acpi/piix4.c
> @@ -205,11 +205,6 @@ static const VMStateDescription vmstate_cpuhp_state = {
> }
> };
>
> -static bool piix4_vmstate_need_smbus(void *opaque, int version_id)
> -{
> - return pm_smbus_vmstate_needed();
> -}
> -
> /*
> * This is a fudge to turn off the acpi_index field,
> * whose test was always broken on piix4 with 6.2 and older machine types.
> @@ -238,8 +233,7 @@ static const VMStateDescription vmstate_acpi = {
> VMSTATE_UINT16(ar.pm1.evt.en, PIIX4PMState),
> VMSTATE_UINT16(ar.pm1.cnt.cnt, PIIX4PMState),
> VMSTATE_STRUCT(apm, PIIX4PMState, 0, vmstate_apm, APMState),
> - VMSTATE_STRUCT_TEST(smb, PIIX4PMState, piix4_vmstate_need_smbus, 3,
> - pmsmb_vmstate, PMSMBus),
> + VMSTATE_STRUCT(smb, PIIX4PMState, 3, pmsmb_vmstate, PMSMBus),
> VMSTATE_TIMER_PTR(ar.tmr.timer, PIIX4PMState),
> VMSTATE_INT64(ar.tmr.overflow_time, PIIX4PMState),
> VMSTATE_STRUCT(ar.gpe, PIIX4PMState, 2, vmstate_gpe, ACPIGPE),
> diff --git a/hw/i2c/pm_smbus.c b/hw/i2c/pm_smbus.c
> index ead53d2724d..5654d516382 100644
> --- a/hw/i2c/pm_smbus.c
> +++ b/hw/i2c/pm_smbus.c
> @@ -443,13 +443,6 @@ static const MemoryRegionOps pm_smbus_ops = {
> .endianness = DEVICE_LITTLE_ENDIAN,
> };
>
> -bool pm_smbus_vmstate_needed(void)
> -{
> - MachineClass *mc = MACHINE_GET_CLASS(qdev_get_machine());
> -
> - return !mc->smbus_no_migration_support;
> -}
> -
> const VMStateDescription pmsmb_vmstate = {
> .name = "pmsmb",
> .version_id = 1,
> diff --git a/hw/i2c/smbus_eeprom.c b/hw/i2c/smbus_eeprom.c
> index d9ac556a0ab..693d4762205 100644
> --- a/hw/i2c/smbus_eeprom.c
> +++ b/hw/i2c/smbus_eeprom.c
> @@ -88,11 +88,9 @@ static int eeprom_write_data(SMBusDevice *dev, uint8_t *buf, uint8_t len)
>
> static bool smbus_eeprom_vmstate_needed(void *opaque)
> {
> - MachineClass *mc = MACHINE_GET_CLASS(qdev_get_machine());
> SMBusEEPROMDevice *eeprom = opaque;
>
> - return (eeprom->accessed || smbus_vmstate_needed(&eeprom->smbusdev)) &&
> - !mc->smbus_no_migration_support;
> + return eeprom->accessed || smbus_vmstate_needed(&eeprom->smbusdev);
> }
>
> static const VMStateDescription vmstate_smbus_eeprom = {
> diff --git a/hw/i2c/smbus_ich9.c b/hw/i2c/smbus_ich9.c
> index 956c9b59bbc..51513e73fde 100644
> --- a/hw/i2c/smbus_ich9.c
> +++ b/hw/i2c/smbus_ich9.c
> @@ -41,20 +41,14 @@ struct ICH9SMBState {
> PMSMBus smb;
> };
>
> -static bool ich9_vmstate_need_smbus(void *opaque, int version_id)
> -{
> - return pm_smbus_vmstate_needed();
> -}
> -
> static const VMStateDescription vmstate_ich9_smbus = {
> .name = "ich9_smb",
> .version_id = 1,
> .minimum_version_id = 1,
> .fields = (const VMStateField[]) {
> VMSTATE_PCI_DEVICE(dev, ICH9SMBState),
> - VMSTATE_BOOL_TEST(irq_enabled, ICH9SMBState, ich9_vmstate_need_smbus),
> - VMSTATE_STRUCT_TEST(smb, ICH9SMBState, ich9_vmstate_need_smbus, 1,
> - pmsmb_vmstate, PMSMBus),
> + VMSTATE_BOOL(irq_enabled, ICH9SMBState),
> + VMSTATE_STRUCT(smb, ICH9SMBState, 1, pmsmb_vmstate, PMSMBus),
> VMSTATE_END_OF_LIST()
> }
> };
> --
> 2.53.0
>
[-- Attachment #2: smime.p7s --]
[-- Type: application/x-pkcs7-signature, Size: 3365 bytes --]
^ permalink raw reply [flat|nested] 23+ messages in thread
* Re: [PATCH v2 00/10] hw/i386/pc: Remove deprecated 3.1 machines
2026-03-09 14:50 [PATCH v2 00/10] hw/i386/pc: Remove deprecated 3.1 machines Philippe Mathieu-Daudé
` (9 preceding siblings ...)
2026-03-09 14:50 ` [PATCH v2 10/10] hw/tpm: Remove CRBState::ppi_enabled field Philippe Mathieu-Daudé
@ 2026-03-09 15:46 ` Philippe Mathieu-Daudé
2026-03-10 14:48 ` Zhao Liu
11 siblings, 0 replies; 23+ messages in thread
From: Philippe Mathieu-Daudé @ 2026-03-09 15:46 UTC (permalink / raw)
To: qemu-devel; +Cc: Zhao Liu, Yi Liu, Paolo Bonzini, Thomas Huth
On 9/3/26 15:50, Philippe Mathieu-Daudé wrote:
> Philippe Mathieu-Daudé (10):
> hw/i386/pc: Remove deprecated pc-q35/pc-i440fx/xenfv 3.1 machines
> hw/i386/pc: Remove PCMachineClass::pvh_enabled field
> hw/i386/x86: Remove @pvh_enabled argument in x86_load_linux()
> hw/core/boards: Remove MachineClass::smbus_no_migration_support field
> hw/i386/pc: Remove pc_compat_3_1[] array
> hw/i386/iommu: Remove IntelIOMMUState::dma_drain field
> target/i386/cpu: Remove X86CPU::intel_pt_auto_level field
> hw/core/machine: Remove the hw_compat_3_1[] array
> hw/pci-bridge/pcie_rp: Remove PCIESlot::disable_acs field
Series queued via hw-misc, thanks.
^ permalink raw reply [flat|nested] 23+ messages in thread
* Re: [PATCH v2 06/10] hw/i386/iommu: Remove IntelIOMMUState::dma_drain field
2026-03-09 14:50 ` [PATCH v2 06/10] hw/i386/iommu: Remove IntelIOMMUState::dma_drain field Philippe Mathieu-Daudé
@ 2026-03-10 6:07 ` CLEMENT MATHIEU--DRIF
2026-03-10 14:29 ` Zhao Liu
1 sibling, 0 replies; 23+ messages in thread
From: CLEMENT MATHIEU--DRIF @ 2026-03-10 6:07 UTC (permalink / raw)
To: Philippe Mathieu-Daudé, qemu-devel@nongnu.org
Cc: Zhao Liu, Yi Liu, Paolo Bonzini, Thomas Huth, Michael S. Tsirkin,
Jason Wang, CLEMENT MATHIEU--DRIF, Richard Henderson,
Eduardo Habkost, Marcel Apfelbaum
Hi Phil,
Thanks for that!
Reviewed-by: Clement Mathieu--Drif <clement.mathieu--drif@bull.com>
On Mon, 2026-03-09 at 15:50 +0100, Philippe Mathieu-Daudé wrote:
> The IntelIOMMUState::dma_drain boolean was only set in
> the pc_compat_3_1[] array, via the 'dma-drain=off' property.
> We removed all machines using that array, lets remove that
> property and all the code around it.
>
> Signed-off-by: Philippe Mathieu-Daudé <[philmd@linaro.org](mailto:philmd@linaro.org)>
> Reviewed-by: Thomas Huth <[thuth@redhat.com](mailto:thuth@redhat.com)>
> Message-Id: <[20260307152635.83893-7-philmd@linaro.org](mailto:20260307152635.83893-7-philmd@linaro.org)>
> ---
> include/hw/i386/intel_iommu.h | 1 -
> hw/i386/intel_iommu.c | 11 +----------
> 2 files changed, 1 insertion(+), 11 deletions(-)
>
> diff --git a/include/hw/i386/intel_iommu.h b/include/hw/i386/intel_iommu.h
> index 54c2b6b77a0..e44ce318417 100644
> --- a/include/hw/i386/intel_iommu.h
> +++ b/include/hw/i386/intel_iommu.h
> @@ -314,7 +314,6 @@ struct IntelIOMMUState {
> bool intr_eime; /* Extended interrupt mode enabled */
> OnOffAuto intr_eim; /* Toggle for EIM cabability */
> uint8_t aw_bits; /* Host/IOVA address width (in bits) */
> - bool dma_drain; /* Whether DMA r/w draining enabled */
> bool pasid; /* Whether to support PASID */
> bool fs1gp; /* First Stage 1-GByte Page Support */
>
> diff --git a/hw/i386/intel_iommu.c b/hw/i386/intel_iommu.c
> index d24ba989bfc..f395fa248c0 100644
> --- a/hw/i386/intel_iommu.c
> +++ b/hw/i386/intel_iommu.c
> @@ -4205,7 +4205,6 @@ static const Property vtd_properties[] = {
> DEFINE_PROP_BOOL("snoop-control", IntelIOMMUState, snoop_control, false),
> DEFINE_PROP_BOOL("x-pasid-mode", IntelIOMMUState, pasid, false),
> DEFINE_PROP_BOOL("svm", IntelIOMMUState, svm, false),
> - DEFINE_PROP_BOOL("dma-drain", IntelIOMMUState, dma_drain, true),
> DEFINE_PROP_BOOL("stale-tm", IntelIOMMUState, stale_tm, false),
> DEFINE_PROP_BOOL("fs1gp", IntelIOMMUState, fs1gp, true),
> };
> @@ -5000,11 +4999,8 @@ static void vtd_cap_init(IntelIOMMUState *s)
> X86IOMMUState *x86_iommu = X86_IOMMU_DEVICE(s);
>
> s->cap = VTD_CAP_FRO | VTD_CAP_NFR | VTD_CAP_ND | VTD_ECAP_PT |
> - VTD_CAP_MAMV | VTD_CAP_PSI | VTD_CAP_SSLPS |
> + VTD_CAP_MAMV | VTD_CAP_PSI | VTD_CAP_SSLPS | VTD_CAP_DRAIN |
> VTD_CAP_ESRTPS | VTD_CAP_MGAW(s->aw_bits);
> - if (s->dma_drain) {
> - s->cap |= VTD_CAP_DRAIN;
> - }
> if (x86_iommu->dma_translation) {
> if (s->aw_bits >= VTD_HOST_AW_39BIT) {
> s->cap |= VTD_CAP_SAGAW_39bit;
> @@ -5582,11 +5578,6 @@ static bool vtd_decide_config(IntelIOMMUState *s, Error **errp)
> return false;
> }
>
> - if (s->scalable_mode && !s->dma_drain) {
> - error_setg(errp, "Need to set dma_drain for scalable mode");
> - return false;
> - }
> -
> if (s->pasid && !s->scalable_mode) {
> error_setg(errp, "Need to set scalable mode for PASID");
> return false;
^ permalink raw reply [flat|nested] 23+ messages in thread
* Re: [PATCH v2 01/10] hw/i386/pc: Remove deprecated pc-q35/pc-i440fx/xenfv 3.1 machines
2026-03-09 14:50 ` [PATCH v2 01/10] hw/i386/pc: Remove deprecated pc-q35/pc-i440fx/xenfv " Philippe Mathieu-Daudé
@ 2026-03-10 14:23 ` Zhao Liu
0 siblings, 0 replies; 23+ messages in thread
From: Zhao Liu @ 2026-03-10 14:23 UTC (permalink / raw)
To: Philippe Mathieu-Daudé
Cc: qemu-devel, Yi Liu, Paolo Bonzini, Thomas Huth,
Michael S. Tsirkin, Marcel Apfelbaum, Richard Henderson,
Eduardo Habkost
On Mon, Mar 09, 2026 at 03:50:03PM +0100, Philippe Mathieu-Daudé wrote:
> Date: Mon, 9 Mar 2026 15:50:03 +0100
> From: Philippe Mathieu-Daudé <philmd@linaro.org>
> Subject: [PATCH v2 01/10] hw/i386/pc: Remove deprecated
> pc-q35/pc-i440fx/xenfv 3.1 machines
> X-Mailer: git-send-email 2.53.0
>
> These machines has been supported for a period of more than 6 years.
> According to our versioned machine support policy (see commit
> ce80c4fa6ff "docs: document special exception for machine type
> deprecation & removal") they can now be removed.
>
> Signed-off-by: Philippe Mathieu-Daudé <philmd@linaro.org>
> Reviewed-by: Thomas Huth <thuth@redhat.com>
> Message-Id: <20260307152635.83893-2-philmd@linaro.org>
> ---
> hw/i386/pc_piix.c | 25 -------------------------
> hw/i386/pc_q35.c | 14 --------------
> 2 files changed, 39 deletions(-)
Reviewed-by: Zhao Liu <zhao1.liu@intel.com>
^ permalink raw reply [flat|nested] 23+ messages in thread
* Re: [PATCH v2 02/10] hw/i386/pc: Remove PCMachineClass::pvh_enabled field
2026-03-09 14:50 ` [PATCH v2 02/10] hw/i386/pc: Remove PCMachineClass::pvh_enabled field Philippe Mathieu-Daudé
@ 2026-03-10 14:25 ` Zhao Liu
0 siblings, 0 replies; 23+ messages in thread
From: Zhao Liu @ 2026-03-10 14:25 UTC (permalink / raw)
To: Philippe Mathieu-Daudé
Cc: qemu-devel, Yi Liu, Paolo Bonzini, Thomas Huth,
Michael S. Tsirkin, Marcel Apfelbaum, Richard Henderson,
Eduardo Habkost
On Mon, Mar 09, 2026 at 03:50:04PM +0100, Philippe Mathieu-Daudé wrote:
> Date: Mon, 9 Mar 2026 15:50:04 +0100
> From: Philippe Mathieu-Daudé <philmd@linaro.org>
> Subject: [PATCH v2 02/10] hw/i386/pc: Remove PCMachineClass::pvh_enabled
> field
> X-Mailer: git-send-email 2.53.0
>
> The PCMachineClass::pvh_enabled boolean was only used by
> the pc-q35-3.1 and pc-i440fx-3.1 machines, which got removed.
> Remove it.
>
> Signed-off-by: Philippe Mathieu-Daudé <philmd@linaro.org>
> Reviewed-by: Thomas Huth <thuth@redhat.com>
> Message-Id: <20260307152635.83893-3-philmd@linaro.org>
> ---
> include/hw/i386/pc.h | 3 ---
> hw/i386/pc.c | 6 ++----
> hw/i386/x86-common.c | 3 +--
> 3 files changed, 3 insertions(+), 9 deletions(-)
Reviewed-by: Zhao Liu <zhao1.liu@intel.com>
^ permalink raw reply [flat|nested] 23+ messages in thread
* Re: [PATCH v2 03/10] hw/i386/x86: Remove @pvh_enabled argument in x86_load_linux()
2026-03-09 14:50 ` [PATCH v2 03/10] hw/i386/x86: Remove @pvh_enabled argument in x86_load_linux() Philippe Mathieu-Daudé
@ 2026-03-10 14:26 ` Zhao Liu
0 siblings, 0 replies; 23+ messages in thread
From: Zhao Liu @ 2026-03-10 14:26 UTC (permalink / raw)
To: Philippe Mathieu-Daudé
Cc: qemu-devel, Yi Liu, Paolo Bonzini, Thomas Huth, Sergio Lopez,
Richard Henderson, Eduardo Habkost, Michael S. Tsirkin,
Marcel Apfelbaum, Alexander Graf, Dorjoy Chowdhury
On Mon, Mar 09, 2026 at 03:50:05PM +0100, Philippe Mathieu-Daudé wrote:
> Date: Mon, 9 Mar 2026 15:50:05 +0100
> From: Philippe Mathieu-Daudé <philmd@linaro.org>
> Subject: [PATCH v2 03/10] hw/i386/x86: Remove @pvh_enabled argument in
> x86_load_linux()
> X-Mailer: git-send-email 2.53.0
>
> x86_load_linux()'s @pvh_enabled is now always %true: remove it.
>
> Signed-off-by: Philippe Mathieu-Daudé <philmd@linaro.org>
> Reviewed-by: Thomas Huth <thuth@redhat.com>
> Message-Id: <20260307152635.83893-4-philmd@linaro.org>
> ---
> include/hw/i386/microvm.h | 2 +-
> include/hw/i386/x86.h | 3 +--
> hw/i386/microvm.c | 2 +-
> hw/i386/nitro_enclave.c | 2 +-
> hw/i386/pc.c | 4 ++--
> hw/i386/x86-common.c | 3 +--
> 6 files changed, 7 insertions(+), 9 deletions(-)
Reviewed-by: Zhao Liu <zhao1.liu@intel.com>
^ permalink raw reply [flat|nested] 23+ messages in thread
* Re: [PATCH v2 04/10] hw/core/boards: Remove MachineClass::smbus_no_migration_support field
2026-03-09 14:50 ` [PATCH v2 04/10] hw/core/boards: Remove MachineClass::smbus_no_migration_support field Philippe Mathieu-Daudé
2026-03-09 15:41 ` Corey Minyard
@ 2026-03-10 14:27 ` Zhao Liu
1 sibling, 0 replies; 23+ messages in thread
From: Zhao Liu @ 2026-03-10 14:27 UTC (permalink / raw)
To: Philippe Mathieu-Daudé
Cc: qemu-devel, Yi Liu, Paolo Bonzini, Thomas Huth,
Michael S. Tsirkin, Igor Mammedov, Ani Sinha, Marcel Apfelbaum,
Aurelien Jarno, Corey Minyard, Eduardo Habkost, Yanan Wang
On Mon, Mar 09, 2026 at 03:50:06PM +0100, Philippe Mathieu-Daudé wrote:
> Date: Mon, 9 Mar 2026 15:50:06 +0100
> From: Philippe Mathieu-Daudé <philmd@linaro.org>
> Subject: [PATCH v2 04/10] hw/core/boards: Remove
> MachineClass::smbus_no_migration_support field
> X-Mailer: git-send-email 2.53.0
>
> The MachineClass::smbus_no_migration_support boolean was only used
> by the pc-q35-3.1 and pc-i440fx-3.1 machines, which got removed.
> Remove it, along with pm_smbus_vmstate_needed().
>
> Use the unconditional VMSTATE_BOOL() and VMSTATE_STRUCT() macros.
>
> Signed-off-by: Philippe Mathieu-Daudé <philmd@linaro.org>
> Reviewed-by: Thomas Huth <thuth@redhat.com>
> Message-Id: <20260307152635.83893-5-philmd@linaro.org>
> ---
> include/hw/core/boards.h | 1 -
> include/hw/i2c/pm_smbus.h | 7 -------
> hw/acpi/piix4.c | 8 +-------
> hw/i2c/pm_smbus.c | 7 -------
> hw/i2c/smbus_eeprom.c | 4 +---
> hw/i2c/smbus_ich9.c | 10 ++--------
> 6 files changed, 4 insertions(+), 33 deletions(-)
Reviewed-by: Zhao Liu <zhao1.liu@intel.com>
^ permalink raw reply [flat|nested] 23+ messages in thread
* Re: [PATCH v2 05/10] hw/i386/pc: Remove pc_compat_3_1[] array
2026-03-09 14:50 ` [PATCH v2 05/10] hw/i386/pc: Remove pc_compat_3_1[] array Philippe Mathieu-Daudé
@ 2026-03-10 14:28 ` Zhao Liu
0 siblings, 0 replies; 23+ messages in thread
From: Zhao Liu @ 2026-03-10 14:28 UTC (permalink / raw)
To: Philippe Mathieu-Daudé
Cc: qemu-devel, Yi Liu, Paolo Bonzini, Thomas Huth,
Michael S. Tsirkin, Marcel Apfelbaum, Richard Henderson,
Eduardo Habkost
On Mon, Mar 09, 2026 at 03:50:07PM +0100, Philippe Mathieu-Daudé wrote:
> Date: Mon, 9 Mar 2026 15:50:07 +0100
> From: Philippe Mathieu-Daudé <philmd@linaro.org>
> Subject: [PATCH v2 05/10] hw/i386/pc: Remove pc_compat_3_1[] array
> X-Mailer: git-send-email 2.53.0
>
> The pc_compat_3_1[] array was only used by the pc-q35-3.1
> and pc-i440fx-3.1 machines, which got removed. Remove it.
>
> Signed-off-by: Philippe Mathieu-Daudé <philmd@linaro.org>
> Reviewed-by: Thomas Huth <thuth@redhat.com>
> Message-Id: <20260307152635.83893-6-philmd@linaro.org>
> ---
> include/hw/i386/pc.h | 3 ---
> hw/i386/pc.c | 25 -------------------------
> 2 files changed, 28 deletions(-)
Reviewed-by: Zhao Liu <zhao1.liu@intel.com>
^ permalink raw reply [flat|nested] 23+ messages in thread
* Re: [PATCH v2 06/10] hw/i386/iommu: Remove IntelIOMMUState::dma_drain field
2026-03-09 14:50 ` [PATCH v2 06/10] hw/i386/iommu: Remove IntelIOMMUState::dma_drain field Philippe Mathieu-Daudé
2026-03-10 6:07 ` CLEMENT MATHIEU--DRIF
@ 2026-03-10 14:29 ` Zhao Liu
1 sibling, 0 replies; 23+ messages in thread
From: Zhao Liu @ 2026-03-10 14:29 UTC (permalink / raw)
To: Philippe Mathieu-Daudé
Cc: qemu-devel, Yi Liu, Paolo Bonzini, Thomas Huth,
Michael S. Tsirkin, Jason Wang, Clément Mathieu--Drif,
Richard Henderson, Eduardo Habkost, Marcel Apfelbaum
On Mon, Mar 09, 2026 at 03:50:08PM +0100, Philippe Mathieu-Daudé wrote:
> Date: Mon, 9 Mar 2026 15:50:08 +0100
> From: Philippe Mathieu-Daudé <philmd@linaro.org>
> Subject: [PATCH v2 06/10] hw/i386/iommu: Remove IntelIOMMUState::dma_drain
> field
> X-Mailer: git-send-email 2.53.0
>
> The IntelIOMMUState::dma_drain boolean was only set in
> the pc_compat_3_1[] array, via the 'dma-drain=off' property.
> We removed all machines using that array, lets remove that
> property and all the code around it.
>
> Signed-off-by: Philippe Mathieu-Daudé <philmd@linaro.org>
> Reviewed-by: Thomas Huth <thuth@redhat.com>
> Message-Id: <20260307152635.83893-7-philmd@linaro.org>
> ---
> include/hw/i386/intel_iommu.h | 1 -
> hw/i386/intel_iommu.c | 11 +----------
> 2 files changed, 1 insertion(+), 11 deletions(-)
Reviewed-by: Zhao Liu <zhao1.liu@intel.com>
^ permalink raw reply [flat|nested] 23+ messages in thread
* Re: [PATCH v2 07/10] target/i386/cpu: Remove X86CPU::intel_pt_auto_level field
2026-03-09 14:50 ` [PATCH v2 07/10] target/i386/cpu: Remove X86CPU::intel_pt_auto_level field Philippe Mathieu-Daudé
@ 2026-03-10 14:31 ` Zhao Liu
0 siblings, 0 replies; 23+ messages in thread
From: Zhao Liu @ 2026-03-10 14:31 UTC (permalink / raw)
To: Philippe Mathieu-Daudé
Cc: qemu-devel, Yi Liu, Paolo Bonzini, Thomas Huth
On Mon, Mar 09, 2026 at 03:50:09PM +0100, Philippe Mathieu-Daudé wrote:
> Date: Mon, 9 Mar 2026 15:50:09 +0100
> From: Philippe Mathieu-Daudé <philmd@linaro.org>
> Subject: [PATCH v2 07/10] target/i386/cpu: Remove
> X86CPU::intel_pt_auto_level field
> X-Mailer: git-send-email 2.53.0
>
> The X86CPU::intel_pt_auto_level boolean was only set in the
> pc_compat_3_1[] array, via the 'x-intel-pt-auto-level=off'
> property. We removed all machines using that array, let's
> emove that property and all the code around it.
>
> Signed-off-by: Philippe Mathieu-Daudé <philmd@linaro.org>
> Reviewed-by: Thomas Huth <thuth@redhat.com>
> Message-Id: <20260307152635.83893-8-philmd@linaro.org>
> ---
> target/i386/cpu.h | 3 ---
> target/i386/cpu.c | 10 +---------
> 2 files changed, 1 insertion(+), 12 deletions(-)
Reviewed-by: Zhao Liu <zhao1.liu@intel.com>
^ permalink raw reply [flat|nested] 23+ messages in thread
* Re: [PATCH v2 08/10] hw/core/machine: Remove the hw_compat_3_1[] array
2026-03-09 14:50 ` [PATCH v2 08/10] hw/core/machine: Remove the hw_compat_3_1[] array Philippe Mathieu-Daudé
@ 2026-03-10 14:31 ` Zhao Liu
0 siblings, 0 replies; 23+ messages in thread
From: Zhao Liu @ 2026-03-10 14:31 UTC (permalink / raw)
To: Philippe Mathieu-Daudé
Cc: qemu-devel, Yi Liu, Paolo Bonzini, Thomas Huth, Eduardo Habkost,
Marcel Apfelbaum, Yanan Wang
On Mon, Mar 09, 2026 at 03:50:10PM +0100, Philippe Mathieu-Daudé wrote:
> Date: Mon, 9 Mar 2026 15:50:10 +0100
> From: Philippe Mathieu-Daudé <philmd@linaro.org>
> Subject: [PATCH v2 08/10] hw/core/machine: Remove the hw_compat_3_1[] array
> X-Mailer: git-send-email 2.53.0
>
> The hw_compat_3_1[] array was only used by the pc-q35-3.1
> and pc-i440fx-3.1 machines, which got removed. Remove it.
>
> Signed-off-by: Philippe Mathieu-Daudé <philmd@linaro.org>
> Reviewed-by: Thomas Huth <thuth@redhat.com>
> Message-Id: <20260307152635.83893-9-philmd@linaro.org>
> ---
> include/hw/core/boards.h | 3 ---
> hw/core/machine.c | 17 -----------------
> 2 files changed, 20 deletions(-)
Reviewed-by: Zhao Liu <zhao1.liu@intel.com>
^ permalink raw reply [flat|nested] 23+ messages in thread
* Re: [PATCH v2 00/10] hw/i386/pc: Remove deprecated 3.1 machines
2026-03-09 14:50 [PATCH v2 00/10] hw/i386/pc: Remove deprecated 3.1 machines Philippe Mathieu-Daudé
` (10 preceding siblings ...)
2026-03-09 15:46 ` [PATCH v2 00/10] hw/i386/pc: Remove deprecated 3.1 machines Philippe Mathieu-Daudé
@ 2026-03-10 14:48 ` Zhao Liu
11 siblings, 0 replies; 23+ messages in thread
From: Zhao Liu @ 2026-03-10 14:48 UTC (permalink / raw)
To: Philippe Mathieu-Daudé
Cc: qemu-devel, Yi Liu, Paolo Bonzini, Thomas Huth
On Mon, Mar 09, 2026 at 03:50:02PM +0100, Philippe Mathieu-Daudé wrote:
> Date: Mon, 9 Mar 2026 15:50:02 +0100
> From: Philippe Mathieu-Daudé <philmd@linaro.org>
> Subject: [PATCH v2 00/10] hw/i386/pc: Remove deprecated 3.1 machines
> X-Mailer: git-send-email 2.53.0
>
> 1 y.o. dust Thomas asked me to rebase & post:
>
> The versioned 'pc' and 'q35' machines up to 3.1 been marked
> as deprecated two releases ago, and are older than 6 years,
> so according to our support policy we can remove them.
>
> v2: Remove xenfv-3.1 in patch #1
>
> Philippe Mathieu-Daudé (10):
> hw/i386/pc: Remove deprecated pc-q35/pc-i440fx/xenfv 3.1 machines
> hw/i386/pc: Remove PCMachineClass::pvh_enabled field
> hw/i386/x86: Remove @pvh_enabled argument in x86_load_linux()
> hw/core/boards: Remove MachineClass::smbus_no_migration_support field
> hw/i386/pc: Remove pc_compat_3_1[] array
> hw/i386/iommu: Remove IntelIOMMUState::dma_drain field
> target/i386/cpu: Remove X86CPU::intel_pt_auto_level field
> hw/core/machine: Remove the hw_compat_3_1[] array
> hw/pci-bridge/pcie_rp: Remove PCIESlot::disable_acs field
> hw/tpm: Remove CRBState::ppi_enabled field
Just a rough idea - not sure whether patches 9 and 10 should be
deprecated before removal. Maybe someone might still use them for
emulating older systems?
If you feel it needs to be deprecated first, I could add these two
properties to my series about deprecated property support (v3) -
v3 will take some time.
Thanks,
Zhao
^ permalink raw reply [flat|nested] 23+ messages in thread
end of thread, other threads:[~2026-03-10 14:22 UTC | newest]
Thread overview: 23+ messages (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
2026-03-09 14:50 [PATCH v2 00/10] hw/i386/pc: Remove deprecated 3.1 machines Philippe Mathieu-Daudé
2026-03-09 14:50 ` [PATCH v2 01/10] hw/i386/pc: Remove deprecated pc-q35/pc-i440fx/xenfv " Philippe Mathieu-Daudé
2026-03-10 14:23 ` Zhao Liu
2026-03-09 14:50 ` [PATCH v2 02/10] hw/i386/pc: Remove PCMachineClass::pvh_enabled field Philippe Mathieu-Daudé
2026-03-10 14:25 ` Zhao Liu
2026-03-09 14:50 ` [PATCH v2 03/10] hw/i386/x86: Remove @pvh_enabled argument in x86_load_linux() Philippe Mathieu-Daudé
2026-03-10 14:26 ` Zhao Liu
2026-03-09 14:50 ` [PATCH v2 04/10] hw/core/boards: Remove MachineClass::smbus_no_migration_support field Philippe Mathieu-Daudé
2026-03-09 15:41 ` Corey Minyard
2026-03-10 14:27 ` Zhao Liu
2026-03-09 14:50 ` [PATCH v2 05/10] hw/i386/pc: Remove pc_compat_3_1[] array Philippe Mathieu-Daudé
2026-03-10 14:28 ` Zhao Liu
2026-03-09 14:50 ` [PATCH v2 06/10] hw/i386/iommu: Remove IntelIOMMUState::dma_drain field Philippe Mathieu-Daudé
2026-03-10 6:07 ` CLEMENT MATHIEU--DRIF
2026-03-10 14:29 ` Zhao Liu
2026-03-09 14:50 ` [PATCH v2 07/10] target/i386/cpu: Remove X86CPU::intel_pt_auto_level field Philippe Mathieu-Daudé
2026-03-10 14:31 ` Zhao Liu
2026-03-09 14:50 ` [PATCH v2 08/10] hw/core/machine: Remove the hw_compat_3_1[] array Philippe Mathieu-Daudé
2026-03-10 14:31 ` Zhao Liu
2026-03-09 14:50 ` [PATCH v2 09/10] hw/pci-bridge/pcie_rp: Remove PCIESlot::disable_acs field Philippe Mathieu-Daudé
2026-03-09 14:50 ` [PATCH v2 10/10] hw/tpm: Remove CRBState::ppi_enabled field Philippe Mathieu-Daudé
2026-03-09 15:46 ` [PATCH v2 00/10] hw/i386/pc: Remove deprecated 3.1 machines Philippe Mathieu-Daudé
2026-03-10 14:48 ` Zhao Liu
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox