Il 25/07/2013 12:59, Gleb Natapov ha scritto:
> +#if PTTYPE == PTTYPE_EPT
> +#define CHECK_BAD_MT_XWR(G) mmu->bad_mt_xwr & (1ull << ((G) & 0x3f));
> +#else
> +#define CHECK_BAD_MT_XWR(G) 0;
> +#endif
> +
>  static bool FNAME(is_rsvd_bits_set)(struct kvm_mmu *mmu, u64 gpte, int level)
>  {
>       int bit7;
>  
>       bit7 = (gpte >> 7) & 1;
> -     return (gpte & mmu->rsvd_bits_mask[bit7][level-1]) != 0;
> +     return ((gpte & mmu->rsvd_bits_mask[bit7][level-1]) != 0) ||
> +             CHECK_BAD_MT_XWR(gpte);
>  }
>  
> +#undef CHECK_BAD_MT_XWR

Instead of a macro, you can do

        if (...)
                return true;
#if PTTYPE == PTTYPE_EPT
        if (...)
                return true;
#endif
        return false;

The compiler should be smart enough to generate the same code for
non-EPT PTTYPE.

> 
> +     /*
> +      * Use PFERR_RSVD_MASK in erorr_code to to tell if EPT
> +      * misconfiguration requires to be injected. The detection is
> +      * done by is_rsvd_bits_set() above.

erorr_code -> error_code

This patch has warnings for unused static functions.  You can squash
them, or split them differently according to file boundaries (i.e. mmu.c
first, vmx.c second).

Paolo
--
To unsubscribe from this list: send the line "unsubscribe kvm" in
the body of a message to [email protected]
More majordomo info at  http://vger.kernel.org/majordomo-info.html

Reply via email to