On Thu, Feb 11, 2021, Paolo Bonzini wrote: > On 11/02/21 02:56, Sean Christopherson wrote: > > > > + pta->gpa = (vm_get_max_gfn(vm) - guest_num_pages) * pta->guest_page_size; > > > > + pta->gpa &= ~(pta->host_page_size - 1); > > > Also not related to this patch, but another case for align. > > > > > > > if (backing_src == VM_MEM_SRC_ANONYMOUS_THP || > > > > backing_src == VM_MEM_SRC_ANONYMOUS_HUGETLB) > > > > - guest_test_phys_mem &= ~(KVM_UTIL_HUGEPAGE_ALIGNMENT - 1); > > > > - > > > > + pta->gpa &= ~(KVM_UTIL_HUGEPAGE_ALIGNMENT - 1); > > > also align > > > > > > > #ifdef __s390x__ > > > > /* Align to 1M (segment size) */ > > > > - guest_test_phys_mem &= ~((1 << 20) - 1); > > > > + pta->gpa &= ~((1 << 20) - 1); > > > And here again (oof) > > > > Yep, I'll fix all these and the align() comment in v2. > > This is not exactly align in fact; it is x & ~y rather than (x + y) & ~y. > Are you going to introduce a round-down macro or is it a bug? (I am > lazy...). Good question. I, too, was lazy. I didn't look at the guts of align() when I moved it, and I didn't look closely at Ben's suggestion. I'll take a closer look today and make sure everything is doing what it's supposed to do.