diff options
-rw-r--r-- | mm/sparse.c | 2 |
1 files changed, 1 insertions, 1 deletions
diff --git a/mm/sparse.c b/mm/sparse.c index 6a4bf9160e85..e861397016a9 100644 --- a/mm/sparse.c +++ b/mm/sparse.c | |||
@@ -287,7 +287,7 @@ sparse_early_usemaps_alloc_pgdat_section(struct pglist_data *pgdat, | |||
287 | * from the same section as the pgdat where possible to avoid | 287 | * from the same section as the pgdat where possible to avoid |
288 | * this problem. | 288 | * this problem. |
289 | */ | 289 | */ |
290 | goal = __pa(pgdat) & PAGE_SECTION_MASK; | 290 | goal = __pa(pgdat) & (PAGE_SECTION_MASK << PAGE_SHIFT); |
291 | host_pgdat = NODE_DATA(early_pfn_to_nid(goal >> PAGE_SHIFT)); | 291 | host_pgdat = NODE_DATA(early_pfn_to_nid(goal >> PAGE_SHIFT)); |
292 | return __alloc_bootmem_node_nopanic(host_pgdat, size, | 292 | return __alloc_bootmem_node_nopanic(host_pgdat, size, |
293 | SMP_CACHE_BYTES, goal); | 293 | SMP_CACHE_BYTES, goal); |