Skip to content

Commit

Permalink
x86/p2m: Drop erroneous #VE-enabled check in ept_set_entry()
Browse files Browse the repository at this point in the history
Code clearing the "Suppress VE" bit in an EPT entry isn't nececsserily running
in current context.  In ALTP2M_external mode, it definitely is not, and in PV
context, vcpu_altp2m(current) acts upon the HVM union.

Even if we could sensibly resolve the target vCPU, it may legitimately not be
fully set up at this point, so rejecting the EPT modification would be buggy.

There is a path in hvm_hap_nested_page_fault() which explicitly emulates #VE
in the cpu_has_vmx_virt_exceptions case, so the -EOPNOTSUPP part of this
condition is also wrong.

Drop the !sve check entirely.

Signed-off-by: Andrew Cooper <[email protected]>
Reviewed-by: Razvan Cojocaru <[email protected]>
Reviewed-by: Jan Beulich <[email protected]>
Reviewed-by: Kevin Tian <[email protected]>
Release-acked-by: Juergen Gross <[email protected]>
  • Loading branch information
andyhhp committed Jan 29, 2019
1 parent 603ad88 commit 448787e
Showing 1 changed file with 0 additions and 10 deletions.
10 changes: 0 additions & 10 deletions xen/arch/x86/mm/p2m-ept.c
Original file line number Diff line number Diff line change
Expand Up @@ -702,16 +702,6 @@ ept_set_entry(struct p2m_domain *p2m, gfn_t gfn_, mfn_t mfn,

ASSERT(ept);

if ( !sve )
{
if ( !cpu_has_vmx_virt_exceptions )
return -EOPNOTSUPP;

/* #VE should be enabled for this vcpu. */
if ( gfn_eq(vcpu_altp2m(current).veinfo_gfn, INVALID_GFN) )
return -ENXIO;
}

/*
* the caller must make sure:
* 1. passing valid gfn and mfn at order boundary.
Expand Down

0 comments on commit 448787e

Please sign in to comment.