[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

[PATCH] nestedsvm: Clear GIF when injecting VMEXIT


  • To: xen-devel@xxxxxxxxxxxxxxxxxxxx
  • From: Ross Lagerwall <ross.lagerwall@xxxxxxxxxx>
  • Date: Thu, 23 Apr 2026 17:11:12 +0100
  • Arc-authentication-results: i=1; mx.microsoft.com 1; spf=pass smtp.mailfrom=citrix.com; dmarc=pass action=none header.from=citrix.com; dkim=pass header.d=citrix.com; arc=none
  • Arc-message-signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=microsoft.com; s=arcselector10001; h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-AntiSpam-MessageData-ChunkCount:X-MS-Exchange-AntiSpam-MessageData-0:X-MS-Exchange-AntiSpam-MessageData-1; bh=z2v5tmIHhBOrrj6BIBeW9FFmoLBnaS91AVXvGPW16lk=; b=p9dy5m0n7+P1bF4/VaYqeijuAJCAColhHFrXjKeyzUxk/NnOCqbAIyBfGiA9VAOJPDdRhsM5u6KeyPrCg7KjIjJcQ55G/swSQIHgLfKLv4b2oa2s58V7+NHNwH6z7NiZHGr8gJ1rBtSKq8OmtrHP2G0iFK3IWWi8FItLmcj65pDhp8C/xu+2iql7AcUfXa/EVT2808DeEz07KUNpH6VJgCBEBevbj8pXKf4rz0yj1utWNHizwpKATNAH8xtNVQYf4F+O6h5wyEPwCghCrWX1f/Rhi1aYTqiF7ptC74RRxMDevYNsW5hI4VOPxg4uAGP1PwEmelplvUrcOCc4Y4DJvw==
  • Arc-seal: i=1; a=rsa-sha256; s=arcselector10001; d=microsoft.com; cv=none; b=yiPNgPXsaxttcqqTGax4Kf4TllOanvVWEK1oNmD0dXCGHVEzWQN51hYnd5Inn12Im+kdFL6Smj9cvdSJ2LH2Z46o/vjxcBycTWNm0e4nOloaSkG8YCYpSirVm9xhZMgMQRe9supamOWhp5yXxD3G+nBm9uKGxk2VU2aj/xSkoeBU9bkJ31TRjsHTgyRxU/o3XrMUHlH6q6HMF9gLRibU0myhu2cPPlWm8TyNiijwgBG0H9Fti92iyJPVGhPNZW85Me/H7R7T5APVkUbgK77ej+ydznF+kLxKL/waQe8Q0RSR7+z7rY/J/3m35ZNxOiIvGBut6bwHDChmNqFjgt10Pw==
  • Authentication-results: eu.smtp.expurgate.cloud; dkim=pass header.s=selector1 header.d=citrix.com header.i="@citrix.com" header.h="From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-SenderADCheck"
  • Authentication-results: dkim=none (message not signed) header.d=none;dmarc=none action=none header.from=citrix.com;
  • Cc: Ross Lagerwall <ross.lagerwall@xxxxxxxxxx>, Jan Beulich <jbeulich@xxxxxxxx>, Andrew Cooper <andrew.cooper3@xxxxxxxxxx>, Roger Pau Monné <roger.pau@xxxxxxxxxx>, Jason Andryuk <jason.andryuk@xxxxxxx>, Teddy Astie <teddy.astie@xxxxxxxxxx>
  • Delivery-date: Thu, 23 Apr 2026 16:11:33 +0000
  • List-id: Xen developer discussion <xen-devel.lists.xenproject.org>

If L1 executes VMRUN with the GIF set and it fails consistency checks,
Xen will inject a VMEXIT and fail the assert checking the GIF is cleared.

Instead, clear the GIF when injecting a VMEXIT to match what hardware
does.

Fixes: 9a779e4fc161 ("Implement SVM specific part for Nested Virtualization")
Signed-off-by: Ross Lagerwall <ross.lagerwall@xxxxxxxxxx>
---
 xen/arch/x86/hvm/svm/nestedsvm.c | 4 ++--
 1 file changed, 2 insertions(+), 2 deletions(-)

diff --git a/xen/arch/x86/hvm/svm/nestedsvm.c b/xen/arch/x86/hvm/svm/nestedsvm.c
index ef6fa5d23b67..f89b087a1155 100644
--- a/xen/arch/x86/hvm/svm/nestedsvm.c
+++ b/xen/arch/x86/hvm/svm/nestedsvm.c
@@ -733,9 +733,9 @@ nsvm_vcpu_vmexit_inject(struct vcpu *v, struct 
cpu_user_regs *regs,
     struct vmcb_struct *vmcb = v->arch.hvm.svm.vmcb;
 
     if ( vmcb->_vintr.fields.vgif_enable )
-        ASSERT(vmcb->_vintr.fields.vgif == 0);
+        vmcb->_vintr.fields.vgif = 0;
     else
-        ASSERT(svm->ns_gif == 0);
+        nestedsvm_vcpu_clgi(v);
 
     ns_vmcb = nv->nv_vvmcx;
 
-- 
2.53.0




 


Rackspace

Lists.xenproject.org is hosted with RackSpace, monitoring our
servers 24x7x365 and backed by RackSpace's Fanatical Support®.