On 12/23/22 08:27, Christoph Hellwig wrote: > > unsigned long size = vma->vm_end - vma->vm_start; > > > > if (vma_is_special_mapping(vma, vdso_info[VDSO_ABI_AA64].dm)) > > - zap_page_range(vma, vma->vm_start, size); > > + zap_vma_page_range(vma, vma->vm_start, size); > > #ifdef CONFIG_COMPAT_VDSO > > if (vma_is_special_mapping(vma, vdso_info[VDSO_ABI_AA32].dm)) > > - zap_page_range(vma, vma->vm_start, size); > > + zap_vma_page_range(vma, vma->vm_start, size); > > #endif > > So for something called zap_vma_page_range I'd expect to just pass > the vma and zap all of it, which this and many other callers want > anyway. > > > +++ b/arch/s390/mm/gmap.c > > @@ -722,7 +722,7 @@ void gmap_discard(struct gmap *gmap, unsigned long from, unsigned long to) > > if (is_vm_hugetlb_page(vma)) > > continue; > > size = min(to - gaddr, PMD_SIZE - (gaddr & ~PMD_MASK)); > > - zap_page_range(vma, vmaddr, size); > > + zap_vma_page_range(vma, vmaddr, size); > > And then just call zap_page_range_single directly for those that > don't want to zap the entire vma. Thanks! This sounds like a good idea and I will incorporate in a new patch. -- Mike Kravetz