File xsa435-0-29.patch of Package xen.31431
From 441b1b2a50ea3656954d75e06d42c96d619ea0fc Mon Sep 17 00:00:00 2001
From: Andrew Cooper <andrew.cooper3@citrix.com>
Date: Mon, 3 Apr 2023 20:03:57 +0100
Subject: x86/emul: Switch x86_emulate_ctxt to cpu_policy
As with struct domain, retain cpuid as a valid alias for local code clarity.
Signed-off-by: Andrew Cooper <andrew.cooper3@citrix.com>
Reviewed-by: Jan Beulich <jbeulich@suse.com>
--- a/tools/tests/x86_emulator/x86-emulate.c
+++ b/tools/tests/x86_emulator/x86-emulate.c
@@ -25,7 +25,7 @@
#define put_stub(stb) ((stb).addr = 0)
uint32_t mxcsr_mask = 0x0000ffbf;
-struct cpuid_policy cp;
+struct cpu_policy cp;
static char fpu_save_area[4096] __attribute__((__aligned__((64))));
static bool use_xsave;
--- a/xen/arch/x86/hvm/emulate.c
+++ b/xen/arch/x86/hvm/emulate.c
@@ -2545,7 +2545,7 @@ int hvm_emulate_one_mmio(unsigned long m
void hvm_emulate_one_vm_event(enum emul_kind kind, unsigned int trapnr,
unsigned int errcode)
{
- struct hvm_emulate_ctxt ctx = {{ 0 }};
+ struct hvm_emulate_ctxt ctx = {};
int rc;
hvm_emulate_init_once(&ctx, NULL, guest_cpu_user_regs());
@@ -2619,7 +2619,7 @@ void hvm_emulate_init_once(
hvmemul_ctxt->validate = validate;
hvmemul_ctxt->ctxt.regs = regs;
- hvmemul_ctxt->ctxt.vendor = curr->domain->arch.cpuid->x86_vendor;
+ hvmemul_ctxt->ctxt.vendor = curr->domain->arch.cpu_policy->x86_vendor;
hvmemul_ctxt->ctxt.force_writeback = true;
}
--- a/xen/arch/x86/pv/emul-priv-op.c
+++ b/xen/arch/x86/pv/emul-priv-op.c
@@ -1228,7 +1228,7 @@ int pv_emulate_privileged_op(struct cpu_
struct domain *currd = curr->domain;
struct priv_op_ctxt ctxt = {
.ctxt.regs = regs,
- .ctxt.vendor = currd->arch.cpuid->x86_vendor,
+ .ctxt.vendor = currd->arch.cpu_policy->x86_vendor,
.ctxt.lma = !is_pv_32bit_domain(currd),
};
int rc;
--- a/xen/arch/x86/pv/ro-page-fault.c
+++ b/xen/arch/x86/pv/ro-page-fault.c
@@ -351,7 +351,7 @@ int pv_ro_page_fault(unsigned long addr,
unsigned int addr_size = is_pv_32bit_domain(currd) ? 32 : BITS_PER_LONG;
struct x86_emulate_ctxt ctxt = {
.regs = regs,
- .vendor = currd->arch.cpuid->x86_vendor,
+ .vendor = currd->arch.cpu_policy->x86_vendor,
.addr_size = addr_size,
.sp_size = addr_size,
.lma = addr_size > 32,