KVM: SVM: Add support for CR4 write traps for an SEV-ES guest
[linux-2.6-microblaze.git] / arch / x86 / kvm / svm / svm.c
index ddcb739..4b3d935 100644 (file)
@@ -2466,6 +2466,12 @@ static int cr_trap(struct vcpu_svm *svm)
 
                kvm_post_set_cr0(vcpu, old_value, new_value);
                break;
+       case 4:
+               old_value = kvm_read_cr4(vcpu);
+               svm_set_cr4(vcpu, new_value);
+
+               kvm_post_set_cr4(vcpu, old_value, new_value);
+               break;
        default:
                WARN(1, "unhandled CR%d write trap", cr);
                kvm_queue_exception(vcpu, UD_VECTOR);
@@ -3023,6 +3029,7 @@ static int (*const svm_exit_handlers[])(struct vcpu_svm *svm) = {
        [SVM_EXIT_RDPRU]                        = rdpru_interception,
        [SVM_EXIT_EFER_WRITE_TRAP]              = efer_trap,
        [SVM_EXIT_CR0_WRITE_TRAP]               = cr_trap,
+       [SVM_EXIT_CR4_WRITE_TRAP]               = cr_trap,
        [SVM_EXIT_INVPCID]                      = invpcid_interception,
        [SVM_EXIT_NPF]                          = npf_interception,
        [SVM_EXIT_RSM]                          = rsm_interception,