On Mon, Feb 26, 2018 at 2:42 PM, Matthias Kaehlcke <mka@xxxxxxxxxxxx> wrote: > The type 'enum kvm_reg_ex' is an extension of 'enum kvm_reg', however > the extension is only semantical and the compiler doesn't know about the > relationship between the two types. In kvm_pdptr_read() a value of the > extended type is passed to kvm_x86_ops->cache_reg(), which expects a > value of the base type. Clang raises the following warning about the > type mismatch: > > arch/x86/kvm/kvm_cache_regs.h:44:32: warning: implicit conversion from > enumeration type 'enum kvm_reg_ex' to different enumeration type > 'enum kvm_reg' [-Wenum-conversion] > kvm_x86_ops->cache_reg(vcpu, VCPU_EXREG_PDPTR); > > Cast VCPU_EXREG_PDPTR to 'enum kvm_reg' to make the compiler happy. > > Signed-off-by: Matthias Kaehlcke <mka@xxxxxxxxxxxx> Reviewed-by: Guenter Roeck <groeck@xxxxxxxxxxxx> > --- > arch/x86/kvm/kvm_cache_regs.h | 2 +- > 1 file changed, 1 insertion(+), 1 deletion(-) > > diff --git a/arch/x86/kvm/kvm_cache_regs.h b/arch/x86/kvm/kvm_cache_regs.h > index f500293dad8d..58ba12071014 100644 > --- a/arch/x86/kvm/kvm_cache_regs.h > +++ b/arch/x86/kvm/kvm_cache_regs.h > @@ -41,7 +41,7 @@ static inline u64 kvm_pdptr_read(struct kvm_vcpu *vcpu, int index) > > if (!test_bit(VCPU_EXREG_PDPTR, > (unsigned long *)&vcpu->arch.regs_avail)) > - kvm_x86_ops->cache_reg(vcpu, VCPU_EXREG_PDPTR); > + kvm_x86_ops->cache_reg(vcpu, (enum kvm_reg)VCPU_EXREG_PDPTR); > > return vcpu->arch.walk_mmu->pdptrs[index]; > } > -- > 2.16.1.291.g4437f3f132-goog >