diff options
Diffstat (limited to 'mm/page_alloc.c')
-rw-r--r-- | mm/page_alloc.c | 17 |
1 files changed, 5 insertions, 12 deletions
diff --git a/mm/page_alloc.c b/mm/page_alloc.c index cb416723538f..1741dd23e7c1 100644 --- a/mm/page_alloc.c +++ b/mm/page_alloc.c | |||
@@ -1910,7 +1910,9 @@ static int move_freepages(struct zone *zone, | |||
1910 | * Remove at a later date when no bug reports exist related to | 1910 | * Remove at a later date when no bug reports exist related to |
1911 | * grouping pages by mobility | 1911 | * grouping pages by mobility |
1912 | */ | 1912 | */ |
1913 | VM_BUG_ON(page_zone(start_page) != page_zone(end_page)); | 1913 | VM_BUG_ON(pfn_valid(page_to_pfn(start_page)) && |
1914 | pfn_valid(page_to_pfn(end_page)) && | ||
1915 | page_zone(start_page) != page_zone(end_page)); | ||
1914 | #endif | 1916 | #endif |
1915 | 1917 | ||
1916 | if (num_movable) | 1918 | if (num_movable) |
@@ -3594,7 +3596,7 @@ static bool __need_fs_reclaim(gfp_t gfp_mask) | |||
3594 | return false; | 3596 | return false; |
3595 | 3597 | ||
3596 | /* this guy won't enter reclaim */ | 3598 | /* this guy won't enter reclaim */ |
3597 | if ((current->flags & PF_MEMALLOC) && !(gfp_mask & __GFP_NOMEMALLOC)) | 3599 | if (current->flags & PF_MEMALLOC) |
3598 | return false; | 3600 | return false; |
3599 | 3601 | ||
3600 | /* We're only interested __GFP_FS allocations for now */ | 3602 | /* We're only interested __GFP_FS allocations for now */ |
@@ -5354,17 +5356,8 @@ void __meminit memmap_init_zone(unsigned long size, int nid, unsigned long zone, | |||
5354 | if (context != MEMMAP_EARLY) | 5356 | if (context != MEMMAP_EARLY) |
5355 | goto not_early; | 5357 | goto not_early; |
5356 | 5358 | ||
5357 | if (!early_pfn_valid(pfn)) { | 5359 | if (!early_pfn_valid(pfn)) |
5358 | #ifdef CONFIG_HAVE_MEMBLOCK_NODE_MAP | ||
5359 | /* | ||
5360 | * Skip to the pfn preceding the next valid one (or | ||
5361 | * end_pfn), such that we hit a valid pfn (or end_pfn) | ||
5362 | * on our next iteration of the loop. | ||
5363 | */ | ||
5364 | pfn = memblock_next_valid_pfn(pfn, end_pfn) - 1; | ||
5365 | #endif | ||
5366 | continue; | 5360 | continue; |
5367 | } | ||
5368 | if (!early_pfn_in_nid(pfn, nid)) | 5361 | if (!early_pfn_in_nid(pfn, nid)) |
5369 | continue; | 5362 | continue; |
5370 | if (!update_defer_init(pgdat, pfn, end_pfn, &nr_initialised)) | 5363 | if (!update_defer_init(pgdat, pfn, end_pfn, &nr_initialised)) |