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

[RFC PATCH 08/11] x86: Migrate insn emulator to use x86_vendor_is()


  • To: <xen-devel@xxxxxxxxxxxxxxxxxxxx>
  • From: Alejandro Vallejo <alejandro.garciavallejo@xxxxxxx>
  • Date: Wed, 26 Nov 2025 17:44:10 +0100
  • Arc-authentication-results: i=1; mx.microsoft.com 1; spf=pass (sender ip is 165.204.84.17) smtp.rcpttodomain=lists.xenproject.org smtp.mailfrom=amd.com; dmarc=pass (p=quarantine sp=quarantine pct=100) action=none header.from=amd.com; dkim=none (message not signed); arc=none (0)
  • 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=GQ+BQunxNt1JDn/totncm1sDyO8K+rrlS0zIt8M0+Wk=; b=u3xzSSL3RRS+4uOJTPpoL65QFLmiuCgNyAw+TCGYRECles3NAVtqnKZ9TvF0GafbM77i7QJUz/saJHtfNAsn6xzLS1ELR/CB9RjCusi8ITFPCb2DwlPWSnwkpuJNvWyQMqkR5P2Rj79xtkKzOENZHztYh9hepRzqe/3lbEFMvFVWW/m0FDdQ2/yScNHtzO09W2TEDAnVEnQBqOUgvZGnoPIwZux7LL4qtT4gHK5XqTkwfxP3qgeEZMtPJNY5E7Vg/NC9n476DISSWsm4mCjNlOmVsibin78RysOzO2ITBI2p4uUYUA1cDlzgpgShi/1r0F+a9TNjKiOJw5TL7ZR74Q==
  • Arc-seal: i=1; a=rsa-sha256; s=arcselector10001; d=microsoft.com; cv=none; b=CmlDRFD6MNkYY0mD6jA9u8gyRbwuNrdD3jUk7D5aYs8N4OYndwJcLINjST3BY84Iaoz6fOjseXbpF3rhX3PyS7KULQXMDlhUGUnCc3gqUgE+DvkV64gzUPqZFz7/V0d5Tu6WpjtqvTEDAQlGfU0lrhbMgVrOmWiX7W+1fH0UoogoCfu2g8FAWBjRoA8YOY3B17Qt7DQIw6pLK+M9bcT/ahlnfwo2gXbq7iRkITeB2Sq4AvXzfS1MflDMB0sC7Wgt24cIER/j/IxYp5bRwHCCDATU9KNbkU7wArB8O67C3rxcIGKZU+hS5qGRuqGmWcMn/8UBaxFnsVATavXf/L7hhw==
  • Cc: Alejandro Vallejo <alejandro.garciavallejo@xxxxxxx>, Jan Beulich <jbeulich@xxxxxxxx>, Andrew Cooper <andrew.cooper3@xxxxxxxxxx>, Roger Pau Monné <roger.pau@xxxxxxxxxx>, Jason Andryuk <jason.andryuk@xxxxxxx>, Xenia Ragiadakou <xenia.ragiadakou@xxxxxxx>, "Stefano Stabellini" <sstabellini@xxxxxxxxxx>
  • Delivery-date: Wed, 26 Nov 2025 16:45:30 +0000
  • List-id: Xen developer discussion <xen-devel.lists.xenproject.org>

Signed-off-by: Alejandro Vallejo <alejandro.garciavallejo@xxxxxxx>
---
 xen/arch/x86/x86_emulate/private.h     | 4 +++-
 xen/arch/x86/x86_emulate/x86_emulate.c | 2 +-
 2 files changed, 4 insertions(+), 2 deletions(-)

diff --git a/xen/arch/x86/x86_emulate/private.h 
b/xen/arch/x86/x86_emulate/private.h
index 24c79c4e8f..57c5689a1e 100644
--- a/xen/arch/x86/x86_emulate/private.h
+++ b/xen/arch/x86/x86_emulate/private.h
@@ -15,6 +15,7 @@
 # include <xen/kernel.h>
 
 # include <asm/cpu-user-regs.h>
+# include <asm/cpuid.h>
 # include <asm/endbr.h>
 # include <asm/msr-index.h>
 # include <asm/stubs.h>
@@ -32,6 +33,7 @@ void BUG(void);
 
 #else /* !__XEN__ */
 # include "x86-emulate.h"
+# define x86_vendor_is(x, y) ((x) & (y))
 #endif
 
 #ifdef __i386__
@@ -520,7 +522,7 @@ in_protmode(
 static inline bool
 _amd_like(const struct cpu_policy *cp)
 {
-    return cp->x86_vendor & (X86_VENDOR_AMD | X86_VENDOR_HYGON);
+    return x86_vendor_is(cp->x86_vendor, X86_VENDOR_AMD | X86_VENDOR_HYGON);
 }
 
 static inline bool
diff --git a/xen/arch/x86/x86_emulate/x86_emulate.c 
b/xen/arch/x86/x86_emulate/x86_emulate.c
index d830aea430..36544adcec 100644
--- a/xen/arch/x86/x86_emulate/x86_emulate.c
+++ b/xen/arch/x86/x86_emulate/x86_emulate.c
@@ -3104,7 +3104,7 @@ x86_emulate(
          * in fact risking to make guest OSes vulnerable to the equivalent of
          * XSA-7 (CVE-2012-0217).
          */
-        generate_exception_if(cp->x86_vendor == X86_VENDOR_INTEL &&
+        generate_exception_if(x86_vendor_is(cp->x86_vendor, X86_VENDOR_INTEL) 
&&
                               op_bytes == 8 && 
!is_canonical_address(_regs.rcx),
                               X86_EXC_GP, 0);
 #endif
-- 
2.43.0




 


Rackspace

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