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/xen/arch/x86/hvm/emulate.c
+++ b/xen/arch/x86/hvm/emulate.c
@@ -2164,7 +2164,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());
@@ -2233,7 +2233,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/mm.c
+++ b/xen/arch/x86/mm.c
@@ -6421,7 +6421,7 @@ int ptwr_do_page_fault(struct vcpu *v, u
     struct ptwr_emulate_ctxt ptwr_ctxt = {
         .ctxt = {
             .regs = regs,
-            .vendor = d->arch.cpuid->x86_vendor,
+            .vendor = d->arch.cpu_policy->x86_vendor,
             .addr_size = is_pv_32bit_domain(d) ? 32 : BITS_PER_LONG,
             .sp_size   = is_pv_32bit_domain(d) ? 32 : BITS_PER_LONG,
             .lma       = !is_pv_32bit_domain(d),
@@ -6576,7 +6576,7 @@ int mmio_ro_do_page_fault(struct vcpu *v
     struct mmio_ro_emulate_ctxt mmio_ro_ctxt = { .cr2 = addr };
     struct x86_emulate_ctxt ctxt = {
         .regs = regs,
-        .vendor = v->domain->arch.cpuid->x86_vendor,
+        .vendor = v->domain->arch.cpu_policy->x86_vendor,
         .addr_size = addr_size,
         .sp_size = addr_size,
         .lma = !is_pv_32bit_vcpu(v),
--- a/xen/arch/x86/traps.c
+++ b/xen/arch/x86/traps.c
@@ -3086,7 +3086,7 @@ static int emulate_privileged_op(struct
     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;
