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

Reply via email to