x86/emul: Fix the emulation of invlpga
authorAndrew Cooper <andrew.cooper3@citrix.com>
Fri, 2 Feb 2018 16:10:17 +0000 (16:10 +0000)
committerAndrew Cooper <andrew.cooper3@citrix.com>
Mon, 5 Feb 2018 18:17:22 +0000 (18:17 +0000)
commita91b2ec337a45d5d98e5a4387aa6563bc5cdc4c9
treefef3b8f1eca199a75d97cac9037786e7e62e7d83
parentd28953581b925a2acd7a4eb40b0ca5c7be2d7a5f
x86/emul: Fix the emulation of invlpga

The instruction requires EFER.SVME set to be usable in the first place.

Furthermore, the emulation doesn't handle ASIDs, so avoid giving the
impression that they work.  Permit ASID 0 which is reserved for non-root
mode (in which case the instruction is identical to invlpg), but raise #UD for
any other ASID.

Signed-off-by: Andrew Cooper <andrew.cooper3@citrix.com>
Reviewed-by: Jan Beulich <jbeulich@suse.com>
xen/arch/x86/x86_emulate/x86_emulate.c