diff --git a/tools/tests/mce-test/tools/xen-mceinj.c b/tools/tests/mce-test/tools/xen-mceinj.c index 51abc8af7b..061ec7c4cb 100644 --- a/tools/tests/mce-test/tools/xen-mceinj.c +++ b/tools/tests/mce-test/tools/xen-mceinj.c @@ -317,10 +317,7 @@ static int inject_mci_addr(xc_interface *xc_handle, domid_t domid) { return add_msr_bank_intpose(xc_handle, cpu_nr, - MC_MSRINJ_F_INTERPOSE | - ((domid >= DOMID_FIRST_RESERVED && - domid != DOMID_SELF) ? - 0 : MC_MSRINJ_F_GPADDR), + MC_MSRINJ_F_INTERPOSE | MC_MSRINJ_F_GPADDR, MCi_type_ADDR, bank, val, domid); } diff --git a/xen/arch/x86/cpu/mcheck/mce.c b/xen/arch/x86/cpu/mcheck/mce.c index 02445535ae..cc446eb7bc 100644 --- a/xen/arch/x86/cpu/mcheck/mce.c +++ b/xen/arch/x86/cpu/mcheck/mce.c @@ -1427,7 +1427,6 @@ long do_mca(XEN_GUEST_HANDLE_PARAM(xen_mc_t) u_xen_mc) if ( mc_msrinject->mcinj_flags & MC_MSRINJ_F_GPADDR ) { - domid_t domid; struct domain *d; struct mcinfo_msr *msr; unsigned int i; @@ -1435,17 +1434,10 @@ long do_mca(XEN_GUEST_HANDLE_PARAM(xen_mc_t) u_xen_mc) unsigned long gfn, mfn; p2m_type_t t; - domid = (mc_msrinject->mcinj_domid == DOMID_SELF) ? - current->domain->domain_id : mc_msrinject->mcinj_domid; - if ( domid >= DOMID_FIRST_RESERVED ) - return x86_mcerr("do_mca inject: incompatible flag " - "MC_MSRINJ_F_GPADDR with domain %d", - -EINVAL, domid); - - d = get_domain_by_id(domid); + d = get_domain_by_id(mc_msrinject->mcinj_domid); if ( d == NULL ) return x86_mcerr("do_mca inject: bad domain id %d", - -EINVAL, domid); + -EINVAL, mc_msrinject->mcinj_domid); for ( i = 0, msr = &mc_msrinject->mcinj_msr[0]; i < mc_msrinject->mcinj_count; @@ -1460,7 +1452,7 @@ long do_mca(XEN_GUEST_HANDLE_PARAM(xen_mc_t) u_xen_mc) put_gfn(d, gfn); put_domain(d); return x86_mcerr("do_mca inject: bad gfn %#lx of domain %d", - -EINVAL, gfn, domid); + -EINVAL, gfn, mc_msrinject->mcinj_domid); } msr->value = pfn_to_paddr(mfn) | (gaddr & (PAGE_SIZE - 1));