mirror of https://github.com/xemu-project/xemu.git
target-i386: Introduce x86_cpu_compat_disable_kvm_features()
Instead of the feature-specific disable_kvm_pv_eoi() function, create a more general function that can be used to disable other feature bits in machine-type compat code. Signed-off-by: Eduardo Habkost <ehabkost@redhat.com> Acked-by: Michael S. Tsirkin <mst@redhat.com> Signed-off-by: Andreas Färber <afaerber@suse.de>
This commit is contained in:
parent
5fcca9ff3b
commit
8fb4f821e9
|
@ -299,7 +299,7 @@ static void pc_compat_1_3(QEMUMachineInitArgs *args)
|
||||||
static void pc_compat_1_2(QEMUMachineInitArgs *args)
|
static void pc_compat_1_2(QEMUMachineInitArgs *args)
|
||||||
{
|
{
|
||||||
pc_compat_1_3(args);
|
pc_compat_1_3(args);
|
||||||
disable_kvm_pv_eoi();
|
x86_cpu_compat_disable_kvm_features(FEAT_KVM, KVM_FEATURE_PV_EOI);
|
||||||
}
|
}
|
||||||
|
|
||||||
static void pc_init_pci_1_7(QEMUMachineInitArgs *args)
|
static void pc_init_pci_1_7(QEMUMachineInitArgs *args)
|
||||||
|
@ -345,7 +345,7 @@ static void pc_init_pci_no_kvmclock(QEMUMachineInitArgs *args)
|
||||||
has_pci_info = false;
|
has_pci_info = false;
|
||||||
has_acpi_build = false;
|
has_acpi_build = false;
|
||||||
smbios_type1_defaults = false;
|
smbios_type1_defaults = false;
|
||||||
disable_kvm_pv_eoi();
|
x86_cpu_compat_disable_kvm_features(FEAT_KVM, KVM_FEATURE_PV_EOI);
|
||||||
enable_compat_apic_id_mode();
|
enable_compat_apic_id_mode();
|
||||||
pc_init1(args, 1, 0);
|
pc_init1(args, 1, 0);
|
||||||
}
|
}
|
||||||
|
@ -358,7 +358,7 @@ static void pc_init_isa(QEMUMachineInitArgs *args)
|
||||||
if (!args->cpu_model) {
|
if (!args->cpu_model) {
|
||||||
args->cpu_model = "486";
|
args->cpu_model = "486";
|
||||||
}
|
}
|
||||||
disable_kvm_pv_eoi();
|
x86_cpu_compat_disable_kvm_features(FEAT_KVM, KVM_FEATURE_PV_EOI);
|
||||||
enable_compat_apic_id_mode();
|
enable_compat_apic_id_mode();
|
||||||
pc_init1(args, 0, 1);
|
pc_init1(args, 0, 1);
|
||||||
}
|
}
|
||||||
|
|
|
@ -371,9 +371,9 @@ static uint32_t kvm_default_features[FEATURE_WORDS] = {
|
||||||
(1 << KVM_FEATURE_CLOCKSOURCE_STABLE_BIT),
|
(1 << KVM_FEATURE_CLOCKSOURCE_STABLE_BIT),
|
||||||
};
|
};
|
||||||
|
|
||||||
void disable_kvm_pv_eoi(void)
|
void x86_cpu_compat_disable_kvm_features(FeatureWord w, uint32_t features)
|
||||||
{
|
{
|
||||||
kvm_default_features[FEAT_KVM] &= ~(1UL << KVM_FEATURE_PV_EOI);
|
kvm_default_features[w] &= ~features;
|
||||||
}
|
}
|
||||||
|
|
||||||
void host_cpuid(uint32_t function, uint32_t count,
|
void host_cpuid(uint32_t function, uint32_t count,
|
||||||
|
|
|
@ -1262,11 +1262,11 @@ void do_smm_enter(X86CPU *cpu);
|
||||||
|
|
||||||
void cpu_report_tpr_access(CPUX86State *env, TPRAccess access);
|
void cpu_report_tpr_access(CPUX86State *env, TPRAccess access);
|
||||||
|
|
||||||
void disable_kvm_pv_eoi(void);
|
|
||||||
|
|
||||||
void x86_cpu_compat_set_features(const char *cpu_model, FeatureWord w,
|
void x86_cpu_compat_set_features(const char *cpu_model, FeatureWord w,
|
||||||
uint32_t feat_add, uint32_t feat_remove);
|
uint32_t feat_add, uint32_t feat_remove);
|
||||||
|
|
||||||
|
void x86_cpu_compat_disable_kvm_features(FeatureWord w, uint32_t features);
|
||||||
|
|
||||||
|
|
||||||
/* Return name of 32-bit register, from a R_* constant */
|
/* Return name of 32-bit register, from a R_* constant */
|
||||||
const char *get_register_name_32(unsigned int reg);
|
const char *get_register_name_32(unsigned int reg);
|
||||||
|
|
Loading…
Reference in New Issue