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.