ctxt->addr_size is expressed in bits rather than bytes, and has the value 16, 32 or 64. Comparing < 8 made the intended non-64bit paths dead.
Signed-off-by: Andrew Cooper <andrew.coop...@citrix.com> --- CC: Jan Beulich <jbeul...@suse.com> --- xen/arch/x86/traps.c | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/xen/arch/x86/traps.c b/xen/arch/x86/traps.c index 2d211d1..a33109d 100644 --- a/xen/arch/x86/traps.c +++ b/xen/arch/x86/traps.c @@ -2100,7 +2100,7 @@ static int pv_emul_virt_to_linear(unsigned long base, unsigned long offset, *addr = base + offset; - if ( ctxt->addr_size < 8 ) + if ( ctxt->addr_size < 64 ) { if ( limit < bytes - 1 || offset > limit - bytes + 1 ) rc = X86EMUL_EXCEPTION; @@ -2169,7 +2169,7 @@ static int priv_op_read_segment(enum x86_segment seg, struct segment_register *reg, struct x86_emulate_ctxt *ctxt) { - if ( ctxt->addr_size < 8 ) + if ( ctxt->addr_size < 64 ) { unsigned long limit; unsigned int sel, ar; -- 2.1.4 _______________________________________________ Xen-devel mailing list Xen-devel@lists.xen.org https://lists.xen.org/xen-devel