From: Wei Liu Date: Fri, 27 May 2016 16:16:36 +0000 (+0100) Subject: Revert "x86/mce: handle reserved domain ID in XEN_MC_msrinject" X-Git-Tag: archive/raspbian/4.8.0-1+rpi1~1^2~1081 X-Git-Url: https://dgit.raspbian.org/?a=commitdiff_plain;h=5ff371e9d87f468bf73acfafd65ba5a0d1b7bd4f;p=xen.git Revert "x86/mce: handle reserved domain ID in XEN_MC_msrinject" This reverts commit 55dc7f61260f4becc6c5e52a8155a6b8741c03cc. The get_maintainer.pl script showed Jan as the maintainer so I pushed this patch. But in fact according to MAINTAINERS file, he's not. Revert this patch and wait until a maintainer acks it. Signed-off-by: Wei Liu --- 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));