diff options
author | Takashi Iwai <tiwai@suse.de> | 2012-12-17 15:40:55 +0100 |
---|---|---|
committer | Takashi Iwai <tiwai@suse.de> | 2012-12-17 15:40:55 +0100 |
commit | 6be7f5344b4fca35f1955aa73f0de825316a3236 (patch) | |
tree | 25ccce9c837fbc7beef026b46852197b637be901 /mm/compaction.c | |
parent | df68f106436b684520212494a5ce0e3823b485da (diff) | |
parent | 8246b5b03ef4ab6f29ad8edad859c74b124323cb (diff) |
Merge tag 'asoc-3.8p1' of git://git.kernel.org/pub/scm/linux/kernel/git/broonie/sound into for-next
ASoC: More updates for v3.8
Nothing terribly exciting here, just small localised changes.
As well as fixes there are a couple of Cirrus changes and one devm_
change which were in prior to the merge window but got missed from the
original pull to Takashi.
Diffstat (limited to 'mm/compaction.c')
-rw-r--r-- | mm/compaction.c | 10 |
1 files changed, 9 insertions, 1 deletions
diff --git a/mm/compaction.c b/mm/compaction.c index 9eef55838fc..694eaabaaeb 100644 --- a/mm/compaction.c +++ b/mm/compaction.c @@ -713,7 +713,15 @@ static void isolate_freepages(struct zone *zone, /* Found a block suitable for isolating free pages from */ isolated = 0; - end_pfn = min(pfn + pageblock_nr_pages, zone_end_pfn); + + /* + * As pfn may not start aligned, pfn+pageblock_nr_page + * may cross a MAX_ORDER_NR_PAGES boundary and miss + * a pfn_valid check. Ensure isolate_freepages_block() + * only scans within a pageblock + */ + end_pfn = ALIGN(pfn + 1, pageblock_nr_pages); + end_pfn = min(end_pfn, zone_end_pfn); isolated = isolate_freepages_block(cc, pfn, end_pfn, freelist, false); nr_freepages += isolated; |