KVM: SVM: Do not activate AVIC for SEV-enabled guest
Since current AVIC implementation cannot support encrypted memory, inhibit AVIC for SEV-enabled guest. Signed-off-by: Suravee Suthikulpanit <suravee.suthikulpanit@amd.com> Message-Id: <20220408133710.54275-1-suravee.suthikulpanit@amd.com> Signed-off-by: Paolo Bonzini <pbonzini@redhat.com>
This commit is contained in:
Родитель
af105c9cc9
Коммит
c538dc792f
|
@ -1052,6 +1052,7 @@ enum kvm_apicv_inhibit {
|
||||||
APICV_INHIBIT_REASON_X2APIC,
|
APICV_INHIBIT_REASON_X2APIC,
|
||||||
APICV_INHIBIT_REASON_BLOCKIRQ,
|
APICV_INHIBIT_REASON_BLOCKIRQ,
|
||||||
APICV_INHIBIT_REASON_ABSENT,
|
APICV_INHIBIT_REASON_ABSENT,
|
||||||
|
APICV_INHIBIT_REASON_SEV,
|
||||||
};
|
};
|
||||||
|
|
||||||
struct kvm_arch {
|
struct kvm_arch {
|
||||||
|
|
|
@ -837,7 +837,8 @@ bool avic_check_apicv_inhibit_reasons(enum kvm_apicv_inhibit reason)
|
||||||
BIT(APICV_INHIBIT_REASON_IRQWIN) |
|
BIT(APICV_INHIBIT_REASON_IRQWIN) |
|
||||||
BIT(APICV_INHIBIT_REASON_PIT_REINJ) |
|
BIT(APICV_INHIBIT_REASON_PIT_REINJ) |
|
||||||
BIT(APICV_INHIBIT_REASON_X2APIC) |
|
BIT(APICV_INHIBIT_REASON_X2APIC) |
|
||||||
BIT(APICV_INHIBIT_REASON_BLOCKIRQ);
|
BIT(APICV_INHIBIT_REASON_BLOCKIRQ) |
|
||||||
|
BIT(APICV_INHIBIT_REASON_SEV);
|
||||||
|
|
||||||
return supported & BIT(reason);
|
return supported & BIT(reason);
|
||||||
}
|
}
|
||||||
|
|
|
@ -260,6 +260,8 @@ static int sev_guest_init(struct kvm *kvm, struct kvm_sev_cmd *argp)
|
||||||
INIT_LIST_HEAD(&sev->regions_list);
|
INIT_LIST_HEAD(&sev->regions_list);
|
||||||
INIT_LIST_HEAD(&sev->mirror_vms);
|
INIT_LIST_HEAD(&sev->mirror_vms);
|
||||||
|
|
||||||
|
kvm_set_apicv_inhibit(kvm, APICV_INHIBIT_REASON_SEV);
|
||||||
|
|
||||||
return 0;
|
return 0;
|
||||||
|
|
||||||
e_free:
|
e_free:
|
||||||
|
|
Загрузка…
Ссылка в новой задаче