]> xenbits.xensource.com Git - people/royger/xen.git/commit
x86: introduce a new VMASSIST for architectural behaviour of iopl
authorAndrew Cooper <andrew.cooper3@citrix.com>
Fri, 8 Apr 2016 20:34:09 +0000 (22:34 +0200)
committerJan Beulich <jbeulich@suse.com>
Fri, 8 Apr 2016 20:34:09 +0000 (22:34 +0200)
commitf71ecb6a1934c146883c4032ff1257576f5723fd
tree8e87cb58c5c710ff8a64248a3a258c35643ccf91
parent7d8519f63ab703e519efe1e8a6d8ccd65b8a803b
x86: introduce a new VMASSIST for architectural behaviour of iopl

The existing vIOPL interface is hard to use, and need not be.

Introduce a VMASSIST with which a guest can opt-in to having vIOPL behaviour
consistenly with native hardware.

Specifically:
 - virtual iopl updated from do_iret() hypercalls.
 - virtual iopl reported in bounce frames.
 - guest kernels assumed to be level 0 for the purpose of iopl checks.

v->arch.pv_vcpu.iopl is altered to store IOPL shifted as it would exist
eflags, for the benefit of the assembly code.

Signed-off-by: Andrew Cooper <andrew.cooper3@citrix.com>
Reviewed-by: Jan Beulich <jbeulich@suse.com>
xen/arch/x86/domain.c
xen/arch/x86/physdev.c
xen/arch/x86/traps.c
xen/arch/x86/x86_64/asm-offsets.c
xen/arch/x86/x86_64/compat/entry.S
xen/arch/x86/x86_64/compat/traps.c
xen/arch/x86/x86_64/entry.S
xen/arch/x86/x86_64/traps.c
xen/include/asm-x86/config.h
xen/include/asm-x86/domain.h
xen/include/public/xen.h