From nobody Sat Feb 7 19:41:19 2026 Received: from mail-pj1-f73.google.com (mail-pj1-f73.google.com [209.85.216.73]) (using TLSv1.2 with cipher ECDHE-RSA-AES128-GCM-SHA256 (128/128 bits)) (No client certificate requested) by smtp.subspace.kernel.org (Postfix) with ESMTPS id 096FC46AEE9 for ; Thu, 22 Jan 2026 04:57:59 +0000 (UTC) Authentication-Results: smtp.subspace.kernel.org; arc=none smtp.client-ip=209.85.216.73 ARC-Seal: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1769057881; cv=none; b=YmFdlWhkOoGSPYXQaTgn2R8bmQrnFyO4prX9YSRrqUJivYcFez8NqKF+KtIjHQxaYeB3q4T9LFhjch8P8SkTI4h2YtOwQHcuaehRqSldFjjp6f3H4H8JGvZNpznDY+vmX47ejqgVZMmQr4qiUL3/DaTTQhm1tB3lAtwNAKWn+n4= ARC-Message-Signature: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1769057881; c=relaxed/simple; bh=wpXekjAzG3IL5CI+i20pupSmQcFDGu1Q1AxNefcVdag=; h=Date:In-Reply-To:Mime-Version:References:Message-ID:Subject:From: To:Cc:Content-Type; b=IOxSdAvm6DcSxTnAPIh0YA5/zzabJRhx5PkV8CR5T0o6O+Fjl4r6LxArl7jZN2DEmun0xp4FsqZHGMHat3YD5qENYFf5Gim6c+9rQd7y/lRgzSTC1fnvSTOqDfs5p0R1gPwgeQY7561Q8znzyl9W9U8LaN0t74h0Gb1l+3anJbI= ARC-Authentication-Results: i=1; smtp.subspace.kernel.org; dmarc=pass (p=reject dis=none) header.from=google.com; spf=pass smtp.mailfrom=flex--chengkev.bounces.google.com; dkim=pass (2048-bit key) header.d=google.com header.i=@google.com header.b=jBRNNN+j; arc=none smtp.client-ip=209.85.216.73 Authentication-Results: smtp.subspace.kernel.org; dmarc=pass (p=reject dis=none) header.from=google.com Authentication-Results: smtp.subspace.kernel.org; spf=pass smtp.mailfrom=flex--chengkev.bounces.google.com Authentication-Results: smtp.subspace.kernel.org; dkim=pass (2048-bit key) header.d=google.com header.i=@google.com header.b="jBRNNN+j" Received: by mail-pj1-f73.google.com with SMTP id 98e67ed59e1d1-34ab8693a2cso1337247a91.0 for ; Wed, 21 Jan 2026 20:57:59 -0800 (PST) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=google.com; s=20230601; t=1769057879; x=1769662679; darn=vger.kernel.org; h=cc:to:from:subject:message-id:references:mime-version:in-reply-to :date:from:to:cc:subject:date:message-id:reply-to; bh=RqpPgpBkcHsc1qhgHSbUd1JkeuX4eLvTF59kcb07cTA=; b=jBRNNN+j07a2FRn+gD+4c2DqUxlVq+8DU/CSvKJ+sJIASsd/TNhjb/ZovAWJQgiVJR o2V+3jDKheJ0iFe8i//DkDDbsEjIpWyFsMVdIF8dcD5cW354/JrauGA9WRrFfAm8D6Hx DIh/ym4O6zhoODwfoVs0HXdM4+TGvWT+DAEgKzAzYXf08CA8drUHhNCrSBU+gW66nIzC W7YRirn9FlHtnXEUyMRJtLUoDgCh1op/Cmnmd7GD37gcX5CH8hyYG2yGZpzzHdqUZco3 MdCuca2GTogRTJHgCgfO/1RL0kVzXBHP8XpC/pZlcnUaPfA2JjSnCpInQkI+/mb+xx+8 BPBw== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20230601; t=1769057879; x=1769662679; h=cc:to:from:subject:message-id:references:mime-version:in-reply-to :date:x-gm-message-state:from:to:cc:subject:date:message-id:reply-to; bh=RqpPgpBkcHsc1qhgHSbUd1JkeuX4eLvTF59kcb07cTA=; b=HgGG/b9ZdZ5Ix9iuy1dIBamqQn/JLTtq4e//CdgkxOS6YloekTqREEZ3znvfqgsLj0 eqZyEBbHKhoXiOIOAmqq8jqX0JQomidLWLRwnuK9HY0I+OU/xrKdwCSG4LUcqS3FKhJQ o4Ld11xovx1C7dmffmrdGeXgTcc/h/IzmK5R0Hz9wszMv5rjb5F2m+T+9lHOkw0cysCJ 0KcBYDW5d5z1iQ06o6s0EtCyKqsU48phE+hq46uW0/zVKTT6EUwcBEGsepJgcSDq/6Ey DDfLeKISBsZaHYqISADWLOmPtRoj2xNiaA23O5N9/sTEhs5y9kEHXPM0pe9iYchy0jYE lWTg== X-Forwarded-Encrypted: i=1; AJvYcCW65rVl5Ywpnk1AAAshGtN+4rW5Ky/LL7cEiB+t8d+RSS1quR0ZjF/C8FqIPLE20/VL70M4fOgh0AJ6e6o=@vger.kernel.org X-Gm-Message-State: AOJu0YwCjGapD5o5VsPJpjCwYWk6orMfiPwsZoPjQqzXfXEU729fDpjO BUieVS9nNTJowAeWqkGz/aYTtlc7ibLaa6vrZ8CukbpG6ZK3Z2xjwantn74P1NbIeRMOZ9YpzM9 wqOeY2oRMbGlNiQ== X-Received: from pjbhl15.prod.google.com ([2002:a17:90b:134f:b0:352:fb17:1f20]) (user=chengkev job=prod-delivery.src-stubby-dispatcher) by 2002:a17:90b:5606:b0:34a:48ff:694 with SMTP id 98e67ed59e1d1-352c40b68admr5643968a91.31.1769057879216; Wed, 21 Jan 2026 20:57:59 -0800 (PST) Date: Thu, 22 Jan 2026 04:57:50 +0000 In-Reply-To: <20260122045755.205203-1-chengkev@google.com> Precedence: bulk X-Mailing-List: linux-kernel@vger.kernel.org List-Id: List-Subscribe: List-Unsubscribe: Mime-Version: 1.0 References: <20260122045755.205203-1-chengkev@google.com> X-Mailer: git-send-email 2.52.0.457.g6b5491de43-goog Message-ID: <20260122045755.205203-2-chengkev@google.com> Subject: [PATCH V3 1/5] KVM: SVM: Move STGI and CLGI intercept handling From: Kevin Cheng To: seanjc@google.com, pbonzini@redhat.com Cc: kvm@vger.kernel.org, linux-kernel@vger.kernel.org, yosry.ahmed@linux.dev, Kevin Cheng Content-Transfer-Encoding: quoted-printable Content-Type: text/plain; charset="utf-8" Move the STGI/CLGI intercept handling to svm_recalc_instruction_intercepts() in preparation for making the function EFER-aware. A later patch will recalculate instruction intercepts when EFER.SVME is toggled, which is needed to inject #UD on STGI/CLGI when the guest clears EFER.SVME. When clearing the STGI intercept with vgif enabled, request KVM_REQ_EVENT if there is a pending GIF-controlled event. This avoids breaking NMI/SMI window tracking, as enable_{nmi,smi}_window() sets INTERCEPT_STGI to detect when NMIs become unblocked. KVM_REQ_EVENT forces kvm_check_and_inject_events() to re-evaluate pending events and re-enable the intercept if needed. Extract the pending GIF event check into a helper function svm_has_pending_gif_event() to deduplicate the logic between svm_recalc_instruction_intercepts() and svm_set_gif(). Signed-off-by: Kevin Cheng --- arch/x86/kvm/svm/svm.c | 32 ++++++++++++++++++++++++-------- 1 file changed, 24 insertions(+), 8 deletions(-) diff --git a/arch/x86/kvm/svm/svm.c b/arch/x86/kvm/svm/svm.c index 24d59ccfa40d9..7a854e81b6560 100644 --- a/arch/x86/kvm/svm/svm.c +++ b/arch/x86/kvm/svm/svm.c @@ -972,6 +972,14 @@ void svm_write_tsc_multiplier(struct kvm_vcpu *vcpu) preempt_enable(); } =20 +static bool svm_has_pending_gif_event(struct vcpu_svm *svm) +{ + return svm->vcpu.arch.smi_pending || + svm->vcpu.arch.nmi_pending || + kvm_cpu_has_injectable_intr(&svm->vcpu) || + kvm_apic_has_pending_init_or_sipi(&svm->vcpu); +} + /* Evaluate instruction intercepts that depend on guest CPUID features. */ static void svm_recalc_instruction_intercepts(struct kvm_vcpu *vcpu) { @@ -1010,6 +1018,20 @@ static void svm_recalc_instruction_intercepts(struct= kvm_vcpu *vcpu) svm_clr_intercept(svm, INTERCEPT_VMSAVE); svm->vmcb->control.virt_ext |=3D VIRTUAL_VMLOAD_VMSAVE_ENABLE_MASK; } + + if (vgif) { + /* + * If there is a pending interrupt controlled by GIF, set + * KVM_REQ_EVENT to re-evaluate if the intercept needs to be set + * again to track when GIF is re-enabled (e.g. for NMI + * injection). + */ + svm_clr_intercept(svm, INTERCEPT_STGI); + if (svm_has_pending_gif_event(svm)) + kvm_make_request(KVM_REQ_EVENT, &svm->vcpu); + + svm_clr_intercept(svm, INTERCEPT_CLGI); + } } } =20 @@ -1147,11 +1169,8 @@ static void init_vmcb(struct kvm_vcpu *vcpu, bool in= it_event) if (vnmi) svm->vmcb->control.int_ctl |=3D V_NMI_ENABLE_MASK; =20 - if (vgif) { - svm_clr_intercept(svm, INTERCEPT_STGI); - svm_clr_intercept(svm, INTERCEPT_CLGI); + if (vgif) svm->vmcb->control.int_ctl |=3D V_GIF_ENABLE_MASK; - } =20 if (vcpu->kvm->arch.bus_lock_detection_enabled) svm_set_intercept(svm, INTERCEPT_BUSLOCK); @@ -2247,10 +2266,7 @@ void svm_set_gif(struct vcpu_svm *svm, bool value) svm_clear_vintr(svm); =20 enable_gif(svm); - if (svm->vcpu.arch.smi_pending || - svm->vcpu.arch.nmi_pending || - kvm_cpu_has_injectable_intr(&svm->vcpu) || - kvm_apic_has_pending_init_or_sipi(&svm->vcpu)) + if (svm_has_pending_gif_event(svm)) kvm_make_request(KVM_REQ_EVENT, &svm->vcpu); } else { disable_gif(svm); --=20 2.52.0.457.g6b5491de43-goog From nobody Sat Feb 7 19:41:19 2026 Received: from mail-pf1-f201.google.com (mail-pf1-f201.google.com [209.85.210.201]) (using TLSv1.2 with cipher ECDHE-RSA-AES128-GCM-SHA256 (128/128 bits)) (No client certificate requested) by smtp.subspace.kernel.org (Postfix) with ESMTPS id 95925466B55 for ; Thu, 22 Jan 2026 04:58:01 +0000 (UTC) Authentication-Results: smtp.subspace.kernel.org; arc=none smtp.client-ip=209.85.210.201 ARC-Seal: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1769057883; cv=none; b=I+AYGwCVHqH3zjCPCBqzAi2W9Kp8eZcRpdtOaaGW+CjB+3FG7shy7Njals1LMcQrQQ01KZDLMK4Nos+mKWciz+1xVE2QC5sPQjDQg/y9DvKbNLGSA6CqYZv4UCOlmdZX1IEkiYObXNiIHmGHQnPCOU0YkID9VFe5ziqe1COlkW0= ARC-Message-Signature: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1769057883; c=relaxed/simple; bh=9zQZI3WlU6jPhXYD2z6AcxtaZlWBL61afEB7pez8jtY=; h=Date:In-Reply-To:Mime-Version:References:Message-ID:Subject:From: To:Cc:Content-Type; b=mNxgavirmXxOzr72tl8UTEVHZG2YHDu+5Pxozfz70seQrVj4nrW37YUX4I+6+rD3cdG290WDcTy89FvOxG3hakwG+W/0O8eZuz5+aQEWJg45DeT3qFf3vLIZK8Yv9PSC0bq70efAgXUfGffSpGW2pYLzFhv/QpD2GsDc7QEdYq0= ARC-Authentication-Results: i=1; smtp.subspace.kernel.org; dmarc=pass (p=reject dis=none) header.from=google.com; spf=pass smtp.mailfrom=flex--chengkev.bounces.google.com; dkim=pass (2048-bit key) header.d=google.com header.i=@google.com header.b=MfX7BzmK; arc=none smtp.client-ip=209.85.210.201 Authentication-Results: smtp.subspace.kernel.org; dmarc=pass (p=reject dis=none) header.from=google.com Authentication-Results: smtp.subspace.kernel.org; spf=pass smtp.mailfrom=flex--chengkev.bounces.google.com Authentication-Results: smtp.subspace.kernel.org; dkim=pass (2048-bit key) header.d=google.com header.i=@google.com header.b="MfX7BzmK" Received: by mail-pf1-f201.google.com with SMTP id d2e1a72fcca58-81f3fb8c8caso1300391b3a.1 for ; Wed, 21 Jan 2026 20:58:01 -0800 (PST) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=google.com; s=20230601; t=1769057881; x=1769662681; darn=vger.kernel.org; h=cc:to:from:subject:message-id:references:mime-version:in-reply-to :date:from:to:cc:subject:date:message-id:reply-to; bh=13hBXw1e/wQdlND4nbuAHkzt9/+Bh7eimLwFf/NzxYc=; b=MfX7BzmK+PksPp+/3yufZXuRDa6AIqDtlT+NSaq+pKVikI0qulCnfgSg6SmAJtluqz 43lRs+k1P+sLCUK7/Ym9CY92IMCAw3g0M6FjkVgnH1cVo9Hfba4LDqqXWekaiIBnctN8 FZdfIjgrxVd7VXl3Qv82ZkG37zqrq0/RxbJ9eIb8+8trwQOD9brZAueRv3VL9Lip+fhi nm8s5OCYSKdpRJmHY/PpxoOvaPtgoBnAn4j9veZZbpDrApSNIyTgsW4Zw5CV5QBFalsY lw0T2eoaHPkm5n/ycM78u/5lShs5373Odtl23adHLLpUwUHlowvuR/xgErq8AwQwyqrt v3LQ== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20230601; t=1769057881; x=1769662681; h=cc:to:from:subject:message-id:references:mime-version:in-reply-to :date:x-gm-message-state:from:to:cc:subject:date:message-id:reply-to; bh=13hBXw1e/wQdlND4nbuAHkzt9/+Bh7eimLwFf/NzxYc=; b=YdsQZ6QBiKkWJ8DgdekRfP0895+GEHMunG5JsJrRXJphl6dGhrnm2BKpA2L5dglbgJ gRyVj9G7cLhDwpgLg2lm7IJCXUJudCXDsw7hH7HuCMnDaZT14hO5VwuZurmxxT2pPFjI ZWu3iyB+urg8gEuqz1u57ZsLNP9PiwCyjRfpXQGl3oc41vZQBDeDbrTp55/UIv8+RpzE XZ6G2kVyaVhNvjeOaW6w2hiBaXRk78e8kePWTMUgEq2P0yfk/wIkBjbEmsZkLeMIHY2H We+6m922dbHxF5aVkdNH+rnPgUlK1OgZRmen/onhEAsdAwJ3srk2sXRoT2YwLwPhPxIA LyaA== X-Forwarded-Encrypted: i=1; AJvYcCXOjmBwIva7VEIuOC8eHFUPqbHlqhwtZO7wNqukgQJtHK3EWCLTlKcRP3JYl+DwLOdTcBxKhxXHUG58bbI=@vger.kernel.org X-Gm-Message-State: AOJu0YyPPpOEQ0EWDf3/DbKHV/Yehysi3HrrFmIO0+4vJ25vfvo4tOXl tGE+sA9tSH3zxiUURMpYCXlrw/7Euvi44lHleWT1gBT2ULXUxamLhx5NPc0oMCdpmakFI7k2l+n 9eyOzb3wpcBDq8g== X-Received: from pfaw7.prod.google.com ([2002:a05:6a00:ab87:b0:7e5:5121:f943]) (user=chengkev job=prod-delivery.src-stubby-dispatcher) by 2002:a05:6a00:2d8b:b0:81f:3461:9f78 with SMTP id d2e1a72fcca58-81fa185061fmr17024231b3a.48.1769057880741; Wed, 21 Jan 2026 20:58:00 -0800 (PST) Date: Thu, 22 Jan 2026 04:57:51 +0000 In-Reply-To: <20260122045755.205203-1-chengkev@google.com> Precedence: bulk X-Mailing-List: linux-kernel@vger.kernel.org List-Id: List-Subscribe: List-Unsubscribe: Mime-Version: 1.0 References: <20260122045755.205203-1-chengkev@google.com> X-Mailer: git-send-email 2.52.0.457.g6b5491de43-goog Message-ID: <20260122045755.205203-3-chengkev@google.com> Subject: [PATCH V3 2/5] KVM: SVM: Inject #UD for STGI if EFER.SVME=0 and SVM Lock and DEV are not available From: Kevin Cheng To: seanjc@google.com, pbonzini@redhat.com Cc: kvm@vger.kernel.org, linux-kernel@vger.kernel.org, yosry.ahmed@linux.dev, Kevin Cheng Content-Transfer-Encoding: quoted-printable Content-Type: text/plain; charset="utf-8" The AMD APM states that STGI causes a #UD if SVM is not enabled and neither SVM Lock nor the device exclusion vector (DEV) are supported. Support for DEV is part of the SKINIT architecture. Fix the STGI exit handler by injecting #UD when these conditions are met. Signed-off-by: Kevin Cheng --- arch/x86/kvm/svm/nested.c | 9 +++++++-- arch/x86/kvm/svm/svm.c | 12 +++++++++++- arch/x86/kvm/svm/svm.h | 1 + 3 files changed, 19 insertions(+), 3 deletions(-) diff --git a/arch/x86/kvm/svm/nested.c b/arch/x86/kvm/svm/nested.c index ba0f11c68372b..60bb320c34bda 100644 --- a/arch/x86/kvm/svm/nested.c +++ b/arch/x86/kvm/svm/nested.c @@ -1466,9 +1466,9 @@ int nested_svm_exit_handled(struct vcpu_svm *svm) return vmexit; } =20 -int nested_svm_check_permissions(struct kvm_vcpu *vcpu) +int __nested_svm_check_permissions(struct kvm_vcpu *vcpu, bool insn_allowe= d) { - if (!(vcpu->arch.efer & EFER_SVME) || !is_paging(vcpu)) { + if (!insn_allowed || !is_paging(vcpu)) { kvm_queue_exception(vcpu, UD_VECTOR); return 1; } @@ -1481,6 +1481,11 @@ int nested_svm_check_permissions(struct kvm_vcpu *vc= pu) return 0; } =20 +int nested_svm_check_permissions(struct kvm_vcpu *vcpu) +{ + return __nested_svm_check_permissions(vcpu, vcpu->arch.efer & EFER_SVME); +} + static bool nested_svm_is_exception_vmexit(struct kvm_vcpu *vcpu, u8 vecto= r, u32 error_code) { diff --git a/arch/x86/kvm/svm/svm.c b/arch/x86/kvm/svm/svm.c index 7a854e81b6560..e6b1f8fa98a20 100644 --- a/arch/x86/kvm/svm/svm.c +++ b/arch/x86/kvm/svm/svm.c @@ -2283,9 +2283,19 @@ void svm_set_gif(struct vcpu_svm *svm, bool value) =20 static int stgi_interception(struct kvm_vcpu *vcpu) { + bool insn_allowed; int ret; =20 - if (nested_svm_check_permissions(vcpu)) + /* + * According to the APM, STGI is allowed even with SVM disabled if SVM + * Lock or device exclusion vector (DEV) are supported. DEV is part of + * the SKINIT architecture. + */ + insn_allowed =3D (vcpu->arch.efer & EFER_SVME) || + guest_cpu_cap_has(vcpu, X86_FEATURE_SVML) || + guest_cpu_cap_has(vcpu, X86_FEATURE_SKINIT); + + if (__nested_svm_check_permissions(vcpu, insn_allowed)) return 1; =20 ret =3D kvm_skip_emulated_instruction(vcpu); diff --git a/arch/x86/kvm/svm/svm.h b/arch/x86/kvm/svm/svm.h index 01be93a53d077..0ec09559767a3 100644 --- a/arch/x86/kvm/svm/svm.h +++ b/arch/x86/kvm/svm/svm.h @@ -769,6 +769,7 @@ static inline int nested_svm_simple_vmexit(struct vcpu_= svm *svm, u32 exit_code) } =20 int nested_svm_exit_handled(struct vcpu_svm *svm); +int __nested_svm_check_permissions(struct kvm_vcpu *vcpu, bool insn_allowe= d); int nested_svm_check_permissions(struct kvm_vcpu *vcpu); int nested_svm_check_exception(struct vcpu_svm *svm, unsigned nr, bool has_error_code, u32 error_code); --=20 2.52.0.457.g6b5491de43-goog From nobody Sat Feb 7 19:41:19 2026 Received: from mail-pg1-f201.google.com (mail-pg1-f201.google.com [209.85.215.201]) (using TLSv1.2 with cipher ECDHE-RSA-AES128-GCM-SHA256 (128/128 bits)) (No client certificate requested) by smtp.subspace.kernel.org (Postfix) with ESMTPS id 11FC4472771 for ; Thu, 22 Jan 2026 04:58:02 +0000 (UTC) Authentication-Results: smtp.subspace.kernel.org; arc=none smtp.client-ip=209.85.215.201 ARC-Seal: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1769057884; cv=none; b=NNCBcNlS1bpzMIslom+hJgGqqx/UvwU9e8hfItXSXctBH9Dv4zDDEjtjhMqSf8vJnmPtxDcCoySeP0sJ3AOJwxXiXani6iGYiJrK1udz+NsoupTpT2SaTC7D8iOzgu0D7x/NGHzpoG/DMW43PBgwbs2oyjuB+4QPXKQ6XFdEEDo= ARC-Message-Signature: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1769057884; c=relaxed/simple; bh=fQr99uM8I060YIwTDdLf//h+zn/VH/xy75rpl5pjh0Q=; h=Date:In-Reply-To:Mime-Version:References:Message-ID:Subject:From: To:Cc:Content-Type; b=XvIQyZKRBFqI3hVz0eml7uzBMnnRMuynLSv2VMV8xzy8bhmMd+ire5ZqjMIMOxPYwRBKRvza2UENba88bYFc0osrPGBzCYrDvex4x8Fn/tY5EgNw9w5XAt5RmJ2UHdcvNFFW+wT3Va9bBaSGShq9kCVVqGPUk15iSSSzPk19ZIU= ARC-Authentication-Results: i=1; smtp.subspace.kernel.org; dmarc=pass (p=reject dis=none) header.from=google.com; spf=pass smtp.mailfrom=flex--chengkev.bounces.google.com; dkim=pass (2048-bit key) header.d=google.com header.i=@google.com header.b=cxkn2XIn; arc=none smtp.client-ip=209.85.215.201 Authentication-Results: smtp.subspace.kernel.org; dmarc=pass (p=reject dis=none) header.from=google.com Authentication-Results: smtp.subspace.kernel.org; spf=pass smtp.mailfrom=flex--chengkev.bounces.google.com Authentication-Results: smtp.subspace.kernel.org; dkim=pass (2048-bit key) header.d=google.com header.i=@google.com header.b="cxkn2XIn" Received: by mail-pg1-f201.google.com with SMTP id 41be03b00d2f7-c337375d953so316291a12.3 for ; Wed, 21 Jan 2026 20:58:02 -0800 (PST) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=google.com; s=20230601; t=1769057882; x=1769662682; darn=vger.kernel.org; h=cc:to:from:subject:message-id:references:mime-version:in-reply-to :date:from:to:cc:subject:date:message-id:reply-to; bh=ukX4ACJbiwYdjP9Kah8t9CaWJb7aftnI6HG33S8HCmc=; b=cxkn2XInHF/kBfBlsP0Y0Fq1quar1/xES0xuTaXbaNK71nYPKB1eVa0eD57fw6bsW+ /T0Zz6UGQdr/zcziS+QCo4mKcBNjeYKknI9T28B+Sn68yQ2U0Pb6yc25iEtR9BAAVFwt h2wmhsoNwAsfH1wKMaPMoKOHQcsNx7XqozwefOIjRymQpQqPtkF32gMs0BbVCLL8pUjW mQ2K4EiFfs5e9ipaLWhAKH9JsICtNBduqCR7lfUyNeMfgrCy7hSU5DlVnZuXQ4xG3U55 G9Vq6rxv08/excgWhollH9zNmHRQC2XbYF+JhMc3qaWqszYiyeXteQsfZQx+DwV7cIky XJGQ== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20230601; t=1769057882; x=1769662682; h=cc:to:from:subject:message-id:references:mime-version:in-reply-to :date:x-gm-message-state:from:to:cc:subject:date:message-id:reply-to; bh=ukX4ACJbiwYdjP9Kah8t9CaWJb7aftnI6HG33S8HCmc=; b=lRWilACgFQNaXK1t+bXp0ZQxq6RSJTgSTkUhPWjxuAAE5Kv5HvUA8GYZ4a1r47eVTk toVh33evjnm0aVvZvIwl4xrkmYwvIGWZn0MCl64UDNzPAOcBSYGxeZQ57iaB/2wnC6i6 y+JALGZc6sZQpQmnSELZFVgnBntzir63VMVBAMzcpeuFGNZ8mJ0vUbnfjGYVBHTHBKPw fuuNTopHWc7aBUm6ZZw5aowsQ9oXx33T30ipCeNga1xl6BF+ljKBIW9RZ6GxiU51F+me 2QvWkRvg84BqHVMBYwbnwrdD/gYmZTFRlvmVTyo/Pv9fwuk9ZlJntCvPqPMFOmjcZ9bc 3icw== X-Forwarded-Encrypted: i=1; AJvYcCV2evLeqQDN1eXaJ5VnG0zkQyMY2n1Ax7ggSnl28Ozk2wXfDHUZiiZgPrxa4UIXdaWjAhxEpqX3wi2VGNE=@vger.kernel.org X-Gm-Message-State: AOJu0YzxtgBxqEgSZdHJFCy2Apr5/XCOXF62TmSJz90udOL+DxdVj1Cr PLkqEtudLEDxWq/K5EOXuQNSgS+tfp/eKjuMEwkrO6lxdFqMMgtC+xh53n49iKo5WKctXPJ/nz9 NW0VBVtzBMylpng== X-Received: from pgbdm5.prod.google.com ([2002:a05:6a02:d85:b0:c1d:ec5f:ada2]) (user=chengkev job=prod-delivery.src-stubby-dispatcher) by 2002:a05:6a21:3984:b0:38d:eeca:b330 with SMTP id adf61e73a8af0-38e00d1557amr19997302637.40.1769057882138; Wed, 21 Jan 2026 20:58:02 -0800 (PST) Date: Thu, 22 Jan 2026 04:57:52 +0000 In-Reply-To: <20260122045755.205203-1-chengkev@google.com> Precedence: bulk X-Mailing-List: linux-kernel@vger.kernel.org List-Id: List-Subscribe: List-Unsubscribe: Mime-Version: 1.0 References: <20260122045755.205203-1-chengkev@google.com> X-Mailer: git-send-email 2.52.0.457.g6b5491de43-goog Message-ID: <20260122045755.205203-4-chengkev@google.com> Subject: [PATCH V3 3/5] KVM: SVM: Inject #UD for INVLPGA if EFER.SVME=0 From: Kevin Cheng To: seanjc@google.com, pbonzini@redhat.com Cc: kvm@vger.kernel.org, linux-kernel@vger.kernel.org, yosry.ahmed@linux.dev, Kevin Cheng Content-Transfer-Encoding: quoted-printable Content-Type: text/plain; charset="utf-8" INVLPGA should cause a #UD when EFER.SVME is not set. Add a check to properly inject #UD when EFER.SVME=3D0. Signed-off-by: Kevin Cheng Reviewed-by: Yosry Ahmed --- arch/x86/kvm/svm/svm.c | 3 +++ 1 file changed, 3 insertions(+) diff --git a/arch/x86/kvm/svm/svm.c b/arch/x86/kvm/svm/svm.c index e6b1f8fa98a20..d3d7daf886b29 100644 --- a/arch/x86/kvm/svm/svm.c +++ b/arch/x86/kvm/svm/svm.c @@ -2320,6 +2320,9 @@ static int invlpga_interception(struct kvm_vcpu *vcpu) gva_t gva =3D kvm_rax_read(vcpu); u32 asid =3D kvm_rcx_read(vcpu); =20 + if (nested_svm_check_permissions(vcpu)) + return 1; + /* FIXME: Handle an address size prefix. */ if (!is_long_mode(vcpu)) gva =3D (u32)gva; --=20 2.52.0.457.g6b5491de43-goog From nobody Sat Feb 7 19:41:19 2026 Received: from mail-pj1-f73.google.com (mail-pj1-f73.google.com [209.85.216.73]) (using TLSv1.2 with cipher ECDHE-RSA-AES128-GCM-SHA256 (128/128 bits)) (No client certificate requested) by smtp.subspace.kernel.org (Postfix) with ESMTPS id 94646472773 for ; Thu, 22 Jan 2026 04:58:04 +0000 (UTC) Authentication-Results: smtp.subspace.kernel.org; arc=none smtp.client-ip=209.85.216.73 ARC-Seal: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1769057886; cv=none; b=kO8FAeGRumPyMzwNeg25erJS0yO21uTA0RcWhhPx66OFWF5B93HynDc3zCaxliO1tJ/pjdhp0F+ThBEUIus6BxLclA9yrnPcLG0tAyWFMhhrD+FM8J2klgeE612co+B18jfGjH5eoznkTXdheEp4ylma7iddnDRL/xMR8JtbkBg= ARC-Message-Signature: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1769057886; c=relaxed/simple; bh=XcN9XQSp7vAr+/NP33TR/5kwIGgIMbdTWz9Y1Boqn/o=; h=Date:In-Reply-To:Mime-Version:References:Message-ID:Subject:From: To:Cc:Content-Type; b=vGqz4N56xXoMXdDBHdj6xPtQHu19VPPJn0s5S8/fQez7okvedH7YOoWqYRSqGEmPlRqZdxZdqWRDJmn6FbIUGl8IK7V+gOexHclseLrjpPTeDeub9lHbW7/DMWTwWgwQ1I1qiYpHWlrKs8c98b6VjngHxeZMMyMhVpLKFmujAoc= ARC-Authentication-Results: i=1; smtp.subspace.kernel.org; dmarc=pass (p=reject dis=none) header.from=google.com; spf=pass smtp.mailfrom=flex--chengkev.bounces.google.com; dkim=pass (2048-bit key) header.d=google.com header.i=@google.com header.b=Ugh9Rptu; arc=none smtp.client-ip=209.85.216.73 Authentication-Results: smtp.subspace.kernel.org; dmarc=pass (p=reject dis=none) header.from=google.com Authentication-Results: smtp.subspace.kernel.org; spf=pass smtp.mailfrom=flex--chengkev.bounces.google.com Authentication-Results: smtp.subspace.kernel.org; dkim=pass (2048-bit key) header.d=google.com header.i=@google.com header.b="Ugh9Rptu" Received: by mail-pj1-f73.google.com with SMTP id 98e67ed59e1d1-34c5d6193daso1146422a91.1 for ; Wed, 21 Jan 2026 20:58:04 -0800 (PST) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=google.com; s=20230601; t=1769057884; x=1769662684; darn=vger.kernel.org; h=cc:to:from:subject:message-id:references:mime-version:in-reply-to :date:from:to:cc:subject:date:message-id:reply-to; bh=3U0BOUGnwPJAwwi3q0VBYzZ4CYyVrcP38EvplDhJ6lk=; b=Ugh9RptuVYW0EmhHmVHXyhAOTkHhF87Zq+raDDNTzqZx8f+AfuUyjc2LxCxjIFn4XE moqzTsB8G3kD+b8uD9u8J4AZZwYWdS10Lin3ZDYE5nFKlg/jO2MYFo8K5RW2KxnBsjv3 0mTkdnxeb+XwwPFNlbqj3EZ9bK/Ex7ehRpMG6mzANfQw5+6x6YrMmXZKqn7UIA8pJalk SinAh4/ejXI78ew+fut1BQ/SdqbNMOdVggG4QJBvUG8MI7SfSuGby5sFf38U/pj/fzpJ NSg8x+uOcJj+ijFeIOR75cRlUidCh1RPm9O011TXxPa/deLzRCS1UQhgcK7lvsYgwBYg 1TYA== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20230601; t=1769057884; x=1769662684; h=cc:to:from:subject:message-id:references:mime-version:in-reply-to :date:x-gm-message-state:from:to:cc:subject:date:message-id:reply-to; bh=3U0BOUGnwPJAwwi3q0VBYzZ4CYyVrcP38EvplDhJ6lk=; b=r1vfiG7MNfW/7LaZKtPEbJBApGBQXhl/59jKxgCxx+20D8Evn03giMw1PxsTiR9F7C pBCpnqmNluzrpMsRNDVHQtYRqQHhE3Kao+JpZiA6OGhn627tqvofAbqW3oVxLmW2Nd08 CkvqnBVnO98acvxA271Vel6fqEEcWKBBUMOinQvdKMr8zPy6aZzhw7xMVk7hoNdGFQwb IJQnrd2aeosdXh8Q5Ljp8ovBYcO1fl4RPrcKkZXIA6a9ZApsJ6vyS1/oV5ltVuLYigG3 6BCEx4YsTMJSGQKk8ihaLOC4wCf7EopsBVdrZ0A1RvnK2HbSRLYwyfLz8NgLOx/taizD HBkw== X-Forwarded-Encrypted: i=1; AJvYcCVZP2ojAKHR+kKN+Oh8yyuegW+wglQzDk+RU2nK8iE1rIl2hUnZUj3Lw0vEdJ7QUkcs5NYD6fm27Vdjm9I=@vger.kernel.org X-Gm-Message-State: AOJu0Yy4tFgLIudSEP+DOUj2unKvtO06IklkhKbEKk/4lVfyFZxvcULs cqC2LRgTZNM4WaxBjhw7HTdVZKfgk2DLuRiUSM2DF9+34cca9DrmzNkuHKkoDKXyKWUDymPLiek hyrv9cdlVs2eo3Q== X-Received: from pjbqj7.prod.google.com ([2002:a17:90b:28c7:b0:34c:811d:e3ca]) (user=chengkev job=prod-delivery.src-stubby-dispatcher) by 2002:a17:90b:240e:b0:352:c146:dc39 with SMTP id 98e67ed59e1d1-352c146dc7amr4825518a91.30.1769057883808; Wed, 21 Jan 2026 20:58:03 -0800 (PST) Date: Thu, 22 Jan 2026 04:57:53 +0000 In-Reply-To: <20260122045755.205203-1-chengkev@google.com> Precedence: bulk X-Mailing-List: linux-kernel@vger.kernel.org List-Id: List-Subscribe: List-Unsubscribe: Mime-Version: 1.0 References: <20260122045755.205203-1-chengkev@google.com> X-Mailer: git-send-email 2.52.0.457.g6b5491de43-goog Message-ID: <20260122045755.205203-5-chengkev@google.com> Subject: [PATCH V3 4/5] KVM: SVM: Recalc instructions intercepts when EFER.SVME is toggled From: Kevin Cheng To: seanjc@google.com, pbonzini@redhat.com Cc: kvm@vger.kernel.org, linux-kernel@vger.kernel.org, yosry.ahmed@linux.dev, Kevin Cheng Content-Transfer-Encoding: quoted-printable Content-Type: text/plain; charset="utf-8" The AMD APM states that VMRUN, VMLOAD, VMSAVE, CLGI, VMMCALL, and INVLPGA instructions should generate a #UD when EFER.SVME is cleared. Currently, when VMLOAD, VMSAVE, or CLGI are executed in L1 with EFER.SVME cleared, no #UD is generated in certain cases. This is because the intercepts for these instructions are cleared based on whether or not vls or vgif is enabled. The #UD fails to be generated when the intercepts are absent. Fix the missing #UD generation by ensuring that all relevant instructions have intercepts set when SVME.EFER is disabled. VMMCALL is special because KVM's ABI is that VMCALL/VMMCALL are always supported for L1 and never fault. Signed-off-by: Kevin Cheng --- arch/x86/kvm/svm/svm.c | 11 ++++++++++- 1 file changed, 10 insertions(+), 1 deletion(-) diff --git a/arch/x86/kvm/svm/svm.c b/arch/x86/kvm/svm/svm.c index d3d7daf886b29..1888211e20988 100644 --- a/arch/x86/kvm/svm/svm.c +++ b/arch/x86/kvm/svm/svm.c @@ -243,6 +243,8 @@ int svm_set_efer(struct kvm_vcpu *vcpu, u64 efer) if (svm_gp_erratum_intercept && !sev_guest(vcpu->kvm)) set_exception_intercept(svm, GP_VECTOR); } + + kvm_make_request(KVM_REQ_RECALC_INTERCEPTS, vcpu); } =20 svm->vmcb->save.efer =3D efer | EFER_SVME; @@ -984,6 +986,7 @@ static bool svm_has_pending_gif_event(struct vcpu_svm *= svm) static void svm_recalc_instruction_intercepts(struct kvm_vcpu *vcpu) { struct vcpu_svm *svm =3D to_svm(vcpu); + u64 efer =3D vcpu->arch.efer; =20 /* * Intercept INVPCID if shadow paging is enabled to sync/free shadow @@ -1004,7 +1007,13 @@ static void svm_recalc_instruction_intercepts(struct= kvm_vcpu *vcpu) svm_set_intercept(svm, INTERCEPT_RDTSCP); } =20 - if (guest_cpuid_is_intel_compatible(vcpu)) { + /* + * Intercept instructions that #UD if EFER.SVME=3D0, as SVME must be set = even + * when running the guest, i.e. hardware will only ever see EFER.SVME=3D1. + */ + if (guest_cpuid_is_intel_compatible(vcpu) || !(efer & EFER_SVME)) { + svm_set_intercept(svm, INTERCEPT_CLGI); + svm_set_intercept(svm, INTERCEPT_STGI); svm_set_intercept(svm, INTERCEPT_VMLOAD); svm_set_intercept(svm, INTERCEPT_VMSAVE); svm->vmcb->control.virt_ext &=3D ~VIRTUAL_VMLOAD_VMSAVE_ENABLE_MASK; --=20 2.52.0.457.g6b5491de43-goog From nobody Sat Feb 7 19:41:19 2026 Received: from mail-pl1-f201.google.com (mail-pl1-f201.google.com [209.85.214.201]) (using TLSv1.2 with cipher ECDHE-RSA-AES128-GCM-SHA256 (128/128 bits)) (No client certificate requested) by smtp.subspace.kernel.org (Postfix) with ESMTPS id 37DE447A0A2 for ; Thu, 22 Jan 2026 04:58:06 +0000 (UTC) Authentication-Results: smtp.subspace.kernel.org; arc=none smtp.client-ip=209.85.214.201 ARC-Seal: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1769057888; cv=none; b=Y/A4xDOaGR7qxlZOjsrioYQkLXtdWgfrBfcwfoo74VdZrZxU9By6tANI26WQuISnMEFtfX5mKBBfIEn4qXHSvDrqUObMmAL66Mb7f/c6ubRZlU+snap4snamv7RWUJ5yHspKUUtWIlGVq0O1h6+vpRHp/86gIYl4KhFzpr5XeGo= ARC-Message-Signature: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1769057888; c=relaxed/simple; bh=waNza6ufOseXNYdZ4iVFICGFrkhQuOPflJIt8OcW/0Q=; h=Date:In-Reply-To:Mime-Version:References:Message-ID:Subject:From: To:Cc:Content-Type; b=cWBSsVwFfGDSB6FEjKpUkB0QzhmQU7iWxiYetokFtRUKnXXQnJPy+jTl4PTtmlozKjTy/Oz/zsEjaDUOasQn/gPjcziiq2lZ3pPvp0VElJRRacnTnmOLPPUrnlx7haGWZVh3pLvaF+NbjetGol7bhL/e6ysyqPRfx6Ms+ex6Oos= ARC-Authentication-Results: i=1; smtp.subspace.kernel.org; dmarc=pass (p=reject dis=none) header.from=google.com; spf=pass smtp.mailfrom=flex--chengkev.bounces.google.com; dkim=pass (2048-bit key) header.d=google.com header.i=@google.com header.b=LDPXKL3N; arc=none smtp.client-ip=209.85.214.201 Authentication-Results: smtp.subspace.kernel.org; dmarc=pass (p=reject dis=none) header.from=google.com Authentication-Results: smtp.subspace.kernel.org; spf=pass smtp.mailfrom=flex--chengkev.bounces.google.com Authentication-Results: smtp.subspace.kernel.org; dkim=pass (2048-bit key) header.d=google.com header.i=@google.com header.b="LDPXKL3N" Received: by mail-pl1-f201.google.com with SMTP id d9443c01a7336-2a58c1c74a3so5932895ad.2 for ; Wed, 21 Jan 2026 20:58:06 -0800 (PST) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=google.com; s=20230601; t=1769057885; x=1769662685; darn=vger.kernel.org; h=cc:to:from:subject:message-id:references:mime-version:in-reply-to :date:from:to:cc:subject:date:message-id:reply-to; bh=jbL906JuFTdICHTDLle0kX3rDHil0lzZwr4G0LAGmzw=; b=LDPXKL3NVpfE+kjiFf7KbIULy8I/3vpp+3AJA2oIrOVUx2tKhw7MGFENuZqKLAN8Vs wttmVLGOqR4kZNxqQei7wSbSJlIWiim3Eis9sgH0URu8PMfKwE4puvoCyDVbVtwQaV70 0KOl/kWWifa9hwjfefVdcPwJZZOCnZBUvNWUUdVEy5zS8nZY5bKGxaqRXTdhjMKSsnS3 RhKZtgZBk+dlUXZ7l6i9oRZUy1g9zQOcsR6KHJqUl1rX+HwdFNulSguoWGbKu/8nXeeQ ObW2C6lZiKcXiFvmJhXB1jvrOarD1SibV3r2kwrvoPHLu9EeAdAXBXZMXr7XkA9mCm3F WSbA== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20230601; t=1769057885; x=1769662685; h=cc:to:from:subject:message-id:references:mime-version:in-reply-to :date:x-gm-message-state:from:to:cc:subject:date:message-id:reply-to; bh=jbL906JuFTdICHTDLle0kX3rDHil0lzZwr4G0LAGmzw=; b=pHy0F6Cms8zoVCDhiZjD6o1x/sb1Uiab38yURK3d3CrtUljpFYs9No1OCA4jPQFECJ 3/OPP9Fq7Gmii6DaODD/WvUi7YzgtiOs5xTf9KhTlfEaCY7GsabQ60oIPbkveDrVr1Kf Z/tgUqy4CPoS9KlVopbgBlwb9kOBqI/n4Mk1YLr6oVuHaNZxUES/MmKzhbVXFZFzvBmS zHM2uE5Te3L0T3wrI17CP9wUZSUE+jao7Fa2pzL7/U4qKVVqG8XOcNIuY7RGFWvEpiC1 JuEArUBAsGArfa/4dolFaoTYoNX3QMSuRuC5VvErlLcxkcaFojS1NZnEwg3S+16pu0Sf ZCLA== X-Forwarded-Encrypted: i=1; AJvYcCUDd+zb72Px2bXNlxROyNWijXqKakgDXR9Q5QAHpM+rnZ4Rz/80f1n9JRb89y2g+j/eQtyGl8C3+VoPQ6U=@vger.kernel.org X-Gm-Message-State: AOJu0Yx7GE5xOAGuKwgT4U4MwL9QWuHh/rJRTZXY7HHWA/NZqV7bd5jT 83pV8JfYl27aKB0dj/rQrMBp4IvaT0ro8bI6MtFb8F0BB5n43mdTfeXJxruvI7yZlz6gWP4stLT f1GY1vNY/Zd0V0g== X-Received: from pgbl12.prod.google.com ([2002:a63:570c:0:b0:bac:a20:5eeb]) (user=chengkev job=prod-delivery.src-stubby-dispatcher) by 2002:a05:6300:83:b0:35f:aa1b:bbfb with SMTP id adf61e73a8af0-38e00d1b9edmr18459118637.50.1769057885381; Wed, 21 Jan 2026 20:58:05 -0800 (PST) Date: Thu, 22 Jan 2026 04:57:54 +0000 In-Reply-To: <20260122045755.205203-1-chengkev@google.com> Precedence: bulk X-Mailing-List: linux-kernel@vger.kernel.org List-Id: List-Subscribe: List-Unsubscribe: Mime-Version: 1.0 References: <20260122045755.205203-1-chengkev@google.com> X-Mailer: git-send-email 2.52.0.457.g6b5491de43-goog Message-ID: <20260122045755.205203-6-chengkev@google.com> Subject: [PATCH V3 5/5] KVM: SVM: Raise #UD if VMMCALL instruction is not intercepted From: Kevin Cheng To: seanjc@google.com, pbonzini@redhat.com Cc: kvm@vger.kernel.org, linux-kernel@vger.kernel.org, yosry.ahmed@linux.dev, Kevin Cheng , Manali Shukla Content-Transfer-Encoding: quoted-printable Content-Type: text/plain; charset="utf-8" The AMD APM states that if VMMCALL instruction is not intercepted, the instruction raises a #UD exception. Create a vmmcall exit handler that generates a #UD if a VMMCALL exit from L2 is being handled by L0, which means that L1 did not intercept the VMMCALL instruction. Suggested-by: Sean Christopherson Signed-off-by: Kevin Cheng Reviewed-by: Yosry Ahmed Reviewed-by: Manali Shukla Tested-by: Manali Shukla --- arch/x86/kvm/svm/svm.c | 16 +++++++++++++++- 1 file changed, 15 insertions(+), 1 deletion(-) diff --git a/arch/x86/kvm/svm/svm.c b/arch/x86/kvm/svm/svm.c index 1888211e20988..9257976ded539 100644 --- a/arch/x86/kvm/svm/svm.c +++ b/arch/x86/kvm/svm/svm.c @@ -3194,6 +3194,20 @@ static int bus_lock_exit(struct kvm_vcpu *vcpu) return 0; } =20 +static int vmmcall_interception(struct kvm_vcpu *vcpu) +{ + /* + * VMMCALL #UDs if it's not intercepted, and KVM reaches this point if + * and only if the VMMCALL intercept is not set in vmcb12. + */ + if (is_guest_mode(vcpu)) { + kvm_queue_exception(vcpu, UD_VECTOR); + return 1; + } + + return kvm_emulate_hypercall(vcpu); +} + static int (*const svm_exit_handlers[])(struct kvm_vcpu *vcpu) =3D { [SVM_EXIT_READ_CR0] =3D cr_interception, [SVM_EXIT_READ_CR3] =3D cr_interception, @@ -3244,7 +3258,7 @@ static int (*const svm_exit_handlers[])(struct kvm_vc= pu *vcpu) =3D { [SVM_EXIT_TASK_SWITCH] =3D task_switch_interception, [SVM_EXIT_SHUTDOWN] =3D shutdown_interception, [SVM_EXIT_VMRUN] =3D vmrun_interception, - [SVM_EXIT_VMMCALL] =3D kvm_emulate_hypercall, + [SVM_EXIT_VMMCALL] =3D vmmcall_interception, [SVM_EXIT_VMLOAD] =3D vmload_interception, [SVM_EXIT_VMSAVE] =3D vmsave_interception, [SVM_EXIT_STGI] =3D stgi_interception, --=20 2.52.0.457.g6b5491de43-goog