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

[PATCH v2 01/13] nestedsvm: Fix CR3 MBZ check


  • To: xen-devel@xxxxxxxxxxxxxxxxxxxx
  • From: chunjie.zhu@xxxxxxxxxx
  • Date: Sat, 10 Oct 2026 18:13:14 +0800
  • 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=p45N7ux0N530bLgT9Agjd5ubAblfxj5lZPu2zbDLpDQ=; b=JCkepnfeEoRVZz+uaIUMgI3IC+L/iBoDAsz9GuctmqnV1KCKLt9zVWpEoID15dHQ5bdEH561s3o441Ovj/8k4QnmB3/Q4HGy+/3Nh821uR3bhTn1mDJl9Dc/3Vsrz18Iof6/zDaMk0gYwtG8c09VHoRbiOLkMxAfjYiK9BLfyE2a24Jp/CGt60GOKPk7weJSek4IoccTmolYExldTTfCvK5n7H3jtB2UiHEz6hbgx4NmZnzL9BoFk/FJMS4sTGOtZ+UNSZBVbMUT1P8q6iZfQbSHZhKiS59wP/LMwaRRHahFlxddWYwkKT6RKgaXXrTFTfMVCaw7hNcbHgZrozbc6A==
  • Arc-seal: i=1; a=rsa-sha256; s=arcselector10001; d=microsoft.com; cv=none; b=Ae+fUicMJoFK+jbaez19ylFeT6C/9bHWfrTbLtcdZs3PQaOEWu6F9hG9CPfU3D56yRGn7l0UK+zHz5eWdQH1fI9j2yme5SrNmzoMaele5SMSiM6HLbdMVunTgNA0vfKZtp0WRyvE/a2QqAy7Aq6TlN/L/2bAjIdP1P0y5L5vOGp1QdswGh6/CYISmmgM0BSWvc/QVKeux6OgmrRJoqiGlWn094N9q2OV5iwPzU7H4pJgm8hztd29uk8A4gcmU5iysXJNvza2NcpNmu/x4Nr4RmCVELiISkmzJn0pTnvOyL4sVYAV2aKUYKdPeLw+LAUdfqYENcz3wVvKtKAlcQE59g==
  • 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: mx.microsoft.com 1; dkim=none (message not signed) header.d=none;dmarc=none action=none header.from=citrix.com;
  • Cc: ross.lagerwall@xxxxxxxxxx, jbeulich@xxxxxxxx, andrew.cooper3@xxxxxxxxxx, roger@xxxxxxxxxxxxxx, jason.andryuk@xxxxxxx, teddy.astie@xxxxxxxxxx, stephen.cheng@xxxxxxxxxx, lin.liu01@xxxxxxxxxx
  • Delivery-date: Sat, 10 Oct 2026 10:14:14 +0000
  • List-id: Xen developer discussion <xen-devel.lists.xenproject.org>

From: Ross Lagerwall <ross.lagerwall@xxxxxxxxxx>

The existing code checks for any reserved bit set while the APM only
considers it invalid if an MBZ bit is set. Relax the check to match the
APM and hardware.

Some of the reserved bits were observed to be set running Rocky Linux
10.1 on Xen on Xen.

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

diff --git a/xen/arch/x86/hvm/svm/vmcb.c b/xen/arch/x86/hvm/svm/vmcb.c
index a6f09672a7c5..39b9e6bf2068 100644
--- a/xen/arch/x86/hvm/svm/vmcb.c
+++ b/xen/arch/x86/hvm/svm/vmcb.c
@@ -354,10 +354,8 @@ bool svm_vmcb_isvalid(
         PRINTF("CR0: bits [63:32] are not zero (%#"PRIx64")\n", cr0);
 
     if ( (cr0 & X86_CR0_PG) &&
-         ((cr3 & 7) ||
-          ((!(cr4 & X86_CR4_PAE) || (efer & EFER_LMA)) && (cr3 & 0xfe0)) ||
-          ((efer & EFER_LMA) &&
-           (cr3 >> v->domain->arch.cpuid->extd.maxphysaddr))) )
+         ((efer & EFER_LMA) &&
+           (cr3 >> v->domain->arch.cpuid->extd.maxphysaddr)) )
         PRINTF("CR3: MBZ bits are set (%#"PRIx64")\n", cr3);
 
     valid = hvm_cr4_guest_valid_bits(v->domain);
-- 
2.34.1




 


Rackspace

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