for piix4 chipset, we don't need to expose aer, so introduce PC_I440FX_COMPAT for all piix4 machines to disable aercap, and add HW_COMPAT_2_2 to disable aercap for all lower than 2.3.
Signed-off-by: Chen Fan <chen.fan.f...@cn.fujitsu.com> --- hw/i386/pc_piix.c | 9 +++++++++ hw/i386/pc_q35.c | 4 ++++ include/hw/compat.h | 10 ++++++++++ 3 files changed, 23 insertions(+) diff --git a/hw/i386/pc_piix.c b/hw/i386/pc_piix.c index 8eab4ba..ff9d312 100644 --- a/hw/i386/pc_piix.c +++ b/hw/i386/pc_piix.c @@ -307,6 +307,11 @@ static void pc_init1(MachineState *machine, static void pc_init_pci(MachineState *machine) { + static GlobalProperty pc_compat_props[] = { + PC_I440FX_COMPAT, + { /* end of list */ } + }; + qdev_prop_register_global_list(pc_compat_props); pc_init1(machine, 1, 1); } @@ -534,6 +539,10 @@ static QEMUMachine pc_i440fx_machine_v2_2 = { PC_I440FX_2_2_MACHINE_OPTIONS, .name = "pc-i440fx-2.2", .init = pc_init_pci_2_2, + .compat_props = (GlobalProperty[]) { + HW_COMPAT_2_2, + { /* end of list */ } + }, }; #define PC_I440FX_2_1_MACHINE_OPTIONS \ diff --git a/hw/i386/pc_q35.c b/hw/i386/pc_q35.c index c0f21fe..97afb7d 100644 --- a/hw/i386/pc_q35.c +++ b/hw/i386/pc_q35.c @@ -431,6 +431,10 @@ static QEMUMachine pc_q35_machine_v2_2 = { PC_Q35_2_2_MACHINE_OPTIONS, .name = "pc-q35-2.2", .init = pc_q35_init_2_2, + .compat_props = (GlobalProperty[]) { + HW_COMPAT_2_2, + { /* end of list */ } + }, }; #define PC_Q35_2_1_MACHINE_OPTIONS \ diff --git a/include/hw/compat.h b/include/hw/compat.h index 313682a..40c974a 100644 --- a/include/hw/compat.h +++ b/include/hw/compat.h @@ -1,7 +1,17 @@ #ifndef HW_COMPAT_H #define HW_COMPAT_H +#define HW_COMPAT_2_2 PC_I440FX_COMPAT + +#define PC_I440FX_COMPAT \ + {\ + .driver = "vfio-pci",\ + .property = "x-aer",\ + .value = "off",\ + } + #define HW_COMPAT_2_1 \ + HW_COMPAT_2_2, \ {\ .driver = "intel-hda",\ .property = "old_msi_addr",\ -- 1.9.3