On Mon, May 13, 2024 at 01:38:39PM -0700, Isaku Yamahata <isaku.yamahata@xxxxxxxxx> wrote: > > > > index 9c99c9373a3e..c9828feb7a1c 100644 > > > > --- a/virt/kvm/kvm_main.c > > > > +++ b/virt/kvm/kvm_main.c > > > > @@ -401,12 +401,17 @@ static void kvm_flush_shadow_all(struct kvm *kvm) > > > > static inline void *mmu_memory_cache_alloc_obj(struct > > > > kvm_mmu_memory_cache *mc, > > > > gfp_t gfp_flags) > > > > { > > > > + void *page; > > > > + > > > > gfp_flags |= mc->gfp_zero; > > > > if (mc->kmem_cache) > > > > return kmem_cache_alloc(mc->kmem_cache, gfp_flags); > > > > - else > > > > - return (void *)__get_free_page(gfp_flags); > > > > + > > > > + page = (void *)__get_free_page(gfp_flags); > > > > + if (page && mc->init_value) > > > > + memset64(page, mc->init_value, PAGE_SIZE / > > > > sizeof(mc->init_value)); > > > > Do we need a static_assert() to make sure mc->init_value is 64bit? > > That's overkill because EPT entry is defined as 64bit and KVM uses u64 for it > uniformly. Oops, I picked the wrong mail to reply. Sorry for noise. -- Isaku Yamahata <isaku.yamahata@xxxxxxxxx>