Re: [PATCH] mm, compaction: Use free lists to quickly locate a migration target -fix

From: Andrew Morton
Date: Wed Jan 09 2019 - 14:27:44 EST


On Wed, 9 Jan 2019 11:13:44 +0000 Mel Gorman <mgorman@xxxxxxxxxxxxxxxxxxx> wrote:

> Full compaction of a node passes in negative orders which can lead to array
> boundary issues. While it could be addressed in the control flow of the
> primary loop, it would be fragile so explicitly check for the condition.
> This is a fix for the mmotm patch
> broken-out/mm-compaction-use-free-lists-to-quickly-locate-a-migration-target.patch
>
> ...
>
> --- a/mm/compaction.c
> +++ b/mm/compaction.c
> @@ -1206,6 +1206,10 @@ fast_isolate_freepages(struct compact_control *cc)
> bool scan_start = false;
> int order;
>
> + /* Full compaction passes in a negative order */
> + if (order <= 0)
> + return cc->free_pfn;
> +
> /*
> * If starting the scan, use a deeper search and use the highest
> * PFN found if a suitable one is not found.

`order' is uninitialized.