Re: [PATCH 1/3] mm/pagewalk.c: fix end address calculation in walk_page_range()

From: Andrew Morton
Date: Thu Feb 27 2014 - 16:03:33 EST


On Wed, 26 Feb 2014 23:39:35 -0500 Naoya Horiguchi <n-horiguchi@xxxxxxxxxxxxx> wrote:

> When we try to walk over inside a vma, walk_page_range() tries to walk
> until vma->vm_end even if a given end is before that point.
> So this patch takes the smaller one as an end address.
>
> ...
>
> --- next-20140220.orig/mm/pagewalk.c
> +++ next-20140220/mm/pagewalk.c
> @@ -321,8 +321,9 @@ int walk_page_range(unsigned long start, unsigned long end,
> next = vma->vm_start;
> } else { /* inside the found vma */
> walk->vma = vma;
> - next = vma->vm_end;
> - err = walk_page_test(start, end, walk);
> + next = min_t(unsigned long, end, vma->vm_end);

min_t is unneeded, isn't it? Everything here has type unsigned long.

> + err = walk_page_test(start, next, walk);
> if (skip_lower_level_walking(walk))
> continue;
> if (err)

I'm assuming this is a fix against
pagewalk-update-page-table-walker-core.patch and shall eventually be
folded into that patch.
--
To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
the body of a message to majordomo@xxxxxxxxxxxxxxx
More majordomo info at http://vger.kernel.org/majordomo-info.html
Please read the FAQ at http://www.tux.org/lkml/