On 05/08/2014 10:12 AM, Marc Zyngier wrote: > On Thu, May 08 2014 at 6:03:07 pm BST, Mario Smarduch <m.smarduch@xxxxxxxxxxx> wrote: >> It appears that for a memslot that crosses a PUD range unmap_range may >> return prematurely if lower pud is not mapping anything. >> >> kvm_pud_addr_end(..) will return end and the loop will terminate possibly >> leaving unmapped ranges. >> >> Am I missing something? > > With 3-level page tables (which is what we have with LPAE on ARMv7), > puds are the same thing as pgds (they are effectively collapsed). This > will change with the introduction of 4-level page tables on ARMv8. > > M. > But what if there is some memslot with range like 0xffff0000 - 0x1000f0000. The lower range has not paged anything in so its pud/pgd is none, but upper range has mappings. Then pud_none(...) will succeed for lower PUD range and kvm_pud_addr_end() will return 'end' and leave the upper mappings stranded. - Mario _______________________________________________ kvmarm mailing list kvmarm@xxxxxxxxxxxxxxxxxxxxx https://lists.cs.columbia.edu/mailman/listinfo/kvmarm