From: Andrew Cooper Date: Tue, 3 Jan 2017 11:55:54 +0000 (+0000) Subject: x86/vvmx: Drop sreg_to_index[] X-Git-Tag: archive/raspbian/4.11.1-1+rpi1~1^2~66^2~3055 X-Git-Url: https://dgit.raspbian.org/?a=commitdiff_plain;h=f65c1290c0dc122df3ae88a5cf44da99554a6711;p=xen.git x86/vvmx: Drop sreg_to_index[] Since c/s 0888d36b "x86/emul: Correct the decoding of SReg3 operands", x86_seg_* have followed hardware encodings, meaning that this translation table is now an identiy transform. No functional change. Signed-off-by: Andrew Cooper Reviewed-by: Jan Beulich Acked-by: Kevin Tian --- diff --git a/xen/arch/x86/hvm/vmx/vvmx.c b/xen/arch/x86/hvm/vmx/vvmx.c index a5db7f315d..cfc9a88ab9 100644 --- a/xen/arch/x86/hvm/vmx/vvmx.c +++ b/xen/arch/x86/hvm/vmx/vvmx.c @@ -191,15 +191,6 @@ bool_t nvmx_ept_enabled(struct vcpu *v) return !!(nvmx->ept.enabled); } -static const enum x86_segment sreg_to_index[] = { - [VMX_SREG_ES] = x86_seg_es, - [VMX_SREG_CS] = x86_seg_cs, - [VMX_SREG_SS] = x86_seg_ss, - [VMX_SREG_DS] = x86_seg_ds, - [VMX_SREG_FS] = x86_seg_fs, - [VMX_SREG_GS] = x86_seg_gs, -}; - struct vmx_inst_decoded { #define VMX_INST_MEMREG_TYPE_MEMORY 0 #define VMX_INST_MEMREG_TYPE_REG 1 @@ -418,9 +409,9 @@ static int decode_vmx_inst(struct cpu_user_regs *regs, decode->type = VMX_INST_MEMREG_TYPE_MEMORY; - if ( info.fields.segment > VMX_SREG_GS ) + if ( info.fields.segment > x86_seg_gs ) goto gp_fault; - hvm_get_segment_register(v, sreg_to_index[info.fields.segment], &seg); + hvm_get_segment_register(v, info.fields.segment, &seg); seg_base = seg.base; base = info.fields.base_reg_invalid ? 0 : @@ -436,7 +427,7 @@ static int decode_vmx_inst(struct cpu_user_regs *regs, size = 1 << (info.fields.addr_size + 1); offset = base + index * scale + disp; - base = !mode_64bit || info.fields.segment >= VMX_SREG_FS ? + base = !mode_64bit || info.fields.segment >= x86_seg_fs ? seg_base + offset : offset; if ( offset + size - 1 < offset || (mode_64bit ? diff --git a/xen/include/asm-x86/hvm/vmx/vvmx.h b/xen/include/asm-x86/hvm/vmx/vvmx.h index af7702b02d..242e524e92 100644 --- a/xen/include/asm-x86/hvm/vmx/vvmx.h +++ b/xen/include/asm-x86/hvm/vmx/vvmx.h @@ -87,15 +87,6 @@ enum vmx_regs_enc { VMX_REG_R15, }; -enum vmx_sregs_enc { - VMX_SREG_ES, - VMX_SREG_CS, - VMX_SREG_SS, - VMX_SREG_DS, - VMX_SREG_FS, - VMX_SREG_GS, -}; - union vmx_inst_info { struct { unsigned int scaling :2; /* bit 0-1 */