diff options
-rw-r--r-- | arch/arm/mm/init.c | 8 | ||||
-rw-r--r-- | arch/powerpc/mm/mem.c | 14 | ||||
-rw-r--r-- | arch/powerpc/mm/numa.c | 4 | ||||
-rw-r--r-- | arch/sh/mm/init.c | 4 | ||||
-rw-r--r-- | arch/sparc/mm/init_64.c | 4 | ||||
-rw-r--r-- | include/linux/memblock.h | 25 |
6 files changed, 29 insertions, 30 deletions
diff --git a/arch/arm/mm/init.c b/arch/arm/mm/init.c index d6022d1f51d1..63f441797c96 100644 --- a/arch/arm/mm/init.c +++ b/arch/arm/mm/init.c | |||
@@ -182,8 +182,8 @@ static void __init arm_bootmem_init(struct meminfo *mi, | |||
182 | * Reserve the memblock reserved regions in bootmem. | 182 | * Reserve the memblock reserved regions in bootmem. |
183 | */ | 183 | */ |
184 | for_each_memblock(reserved, reg) { | 184 | for_each_memblock(reserved, reg) { |
185 | phys_addr_t start = memblock_region_base_pfn(reg); | 185 | phys_addr_t start = memblock_region_reserved_base_pfn(reg); |
186 | phys_addr_t end = memblock_region_end_pfn(reg); | 186 | phys_addr_t end = memblock_region_reserved_end_pfn(reg); |
187 | if (start >= start_pfn && end <= end_pfn) | 187 | if (start >= start_pfn && end <= end_pfn) |
188 | reserve_bootmem_node(pgdat, __pfn_to_phys(start), | 188 | reserve_bootmem_node(pgdat, __pfn_to_phys(start), |
189 | (end - start) << PAGE_SHIFT, | 189 | (end - start) << PAGE_SHIFT, |
@@ -251,8 +251,8 @@ static void arm_memory_present(void) | |||
251 | struct memblock_region *reg; | 251 | struct memblock_region *reg; |
252 | 252 | ||
253 | for_each_memblock(memory, reg) | 253 | for_each_memblock(memory, reg) |
254 | memory_present(0, memblock_region_base_pfn(reg), | 254 | memory_present(0, memblock_region_memory_base_pfn(reg), |
255 | memblock_region_end_pfn(reg)); | 255 | memblock_region_memory_end_pfn(reg)); |
256 | } | 256 | } |
257 | #endif | 257 | #endif |
258 | 258 | ||
diff --git a/arch/powerpc/mm/mem.c b/arch/powerpc/mm/mem.c index f661f6c527da..a66499650909 100644 --- a/arch/powerpc/mm/mem.c +++ b/arch/powerpc/mm/mem.c | |||
@@ -148,8 +148,8 @@ walk_system_ram_range(unsigned long start_pfn, unsigned long nr_pages, | |||
148 | int ret = -1; | 148 | int ret = -1; |
149 | 149 | ||
150 | for_each_memblock(memory, reg) { | 150 | for_each_memblock(memory, reg) { |
151 | tstart = max(start_pfn, memblock_region_base_pfn(reg)); | 151 | tstart = max(start_pfn, memblock_region_memory_base_pfn(reg)); |
152 | tend = min(end_pfn, memblock_region_end_pfn(reg)); | 152 | tend = min(end_pfn, memblock_region_memory_end_pfn(reg)); |
153 | if (tstart >= tend) | 153 | if (tstart >= tend) |
154 | continue; | 154 | continue; |
155 | ret = (*func)(tstart, tend - tstart, arg); | 155 | ret = (*func)(tstart, tend - tstart, arg); |
@@ -195,8 +195,8 @@ void __init do_init_bootmem(void) | |||
195 | /* Add active regions with valid PFNs */ | 195 | /* Add active regions with valid PFNs */ |
196 | for_each_memblock(memory, reg) { | 196 | for_each_memblock(memory, reg) { |
197 | unsigned long start_pfn, end_pfn; | 197 | unsigned long start_pfn, end_pfn; |
198 | start_pfn = memblock_region_base_pfn(reg); | 198 | start_pfn = memblock_region_memory_base_pfn(reg); |
199 | end_pfn = memblock_region_end_pfn(reg); | 199 | end_pfn = memblock_region_memory_end_pfn(reg); |
200 | add_active_range(0, start_pfn, end_pfn); | 200 | add_active_range(0, start_pfn, end_pfn); |
201 | } | 201 | } |
202 | 202 | ||
@@ -236,9 +236,9 @@ static int __init mark_nonram_nosave(void) | |||
236 | 236 | ||
237 | for_each_memblock(memory, reg) { | 237 | for_each_memblock(memory, reg) { |
238 | if (prev && | 238 | if (prev && |
239 | memblock_region_end_pfn(prev) < memblock_region_base_pfn(reg)) | 239 | memblock_region_memory_end_pfn(prev) < memblock_region_memory_base_pfn(reg)) |
240 | register_nosave_region(memblock_region_end_pfn(prev), | 240 | register_nosave_region(memblock_region_memory_end_pfn(prev), |
241 | memblock_region_base_pfn(reg)); | 241 | memblock_region_memory_base_pfn(reg)); |
242 | prev = reg; | 242 | prev = reg; |
243 | } | 243 | } |
244 | return 0; | 244 | return 0; |
diff --git a/arch/powerpc/mm/numa.c b/arch/powerpc/mm/numa.c index 066fb443ba5a..74505b245374 100644 --- a/arch/powerpc/mm/numa.c +++ b/arch/powerpc/mm/numa.c | |||
@@ -811,8 +811,8 @@ static void __init setup_nonnuma(void) | |||
811 | (top_of_ram - total_ram) >> 20); | 811 | (top_of_ram - total_ram) >> 20); |
812 | 812 | ||
813 | for_each_memblock(memory, reg) { | 813 | for_each_memblock(memory, reg) { |
814 | start_pfn = memblock_region_base_pfn(reg); | 814 | start_pfn = memblock_region_memory_base_pfn(reg); |
815 | end_pfn = memblock_region_end_pfn(reg); | 815 | end_pfn = memblock_region_memory_end_pfn(reg); |
816 | 816 | ||
817 | fake_numa_create_new_node(end_pfn, &nid); | 817 | fake_numa_create_new_node(end_pfn, &nid); |
818 | add_active_range(nid, start_pfn, end_pfn); | 818 | add_active_range(nid, start_pfn, end_pfn); |
diff --git a/arch/sh/mm/init.c b/arch/sh/mm/init.c index b977475f7446..552bea5113f5 100644 --- a/arch/sh/mm/init.c +++ b/arch/sh/mm/init.c | |||
@@ -244,8 +244,8 @@ static void __init do_init_bootmem(void) | |||
244 | /* Add active regions with valid PFNs. */ | 244 | /* Add active regions with valid PFNs. */ |
245 | for_each_memblock(memory, reg) { | 245 | for_each_memblock(memory, reg) { |
246 | unsigned long start_pfn, end_pfn; | 246 | unsigned long start_pfn, end_pfn; |
247 | start_pfn = memblock_region_base_pfn(reg); | 247 | start_pfn = memblock_region_memory_base_pfn(reg); |
248 | end_pfn = memblock_region_end_pfn(reg); | 248 | end_pfn = memblock_region_memory_end_pfn(reg); |
249 | __add_active_range(0, start_pfn, end_pfn); | 249 | __add_active_range(0, start_pfn, end_pfn); |
250 | } | 250 | } |
251 | 251 | ||
diff --git a/arch/sparc/mm/init_64.c b/arch/sparc/mm/init_64.c index dc584d26d597..4c2572773b55 100644 --- a/arch/sparc/mm/init_64.c +++ b/arch/sparc/mm/init_64.c | |||
@@ -1294,8 +1294,8 @@ static void __init bootmem_init_nonnuma(void) | |||
1294 | if (!reg->size) | 1294 | if (!reg->size) |
1295 | continue; | 1295 | continue; |
1296 | 1296 | ||
1297 | start_pfn = memblock_region_base_pfn(reg); | 1297 | start_pfn = memblock_region_memory_base_pfn(reg); |
1298 | end_pfn = memblock_region_end_pfn(reg); | 1298 | end_pfn = memblock_region_memory_end_pfn(reg); |
1299 | add_active_range(0, start_pfn, end_pfn); | 1299 | add_active_range(0, start_pfn, end_pfn); |
1300 | } | 1300 | } |
1301 | 1301 | ||
diff --git a/include/linux/memblock.h b/include/linux/memblock.h index 5096458c7535..62a10c2a11f2 100644 --- a/include/linux/memblock.h +++ b/include/linux/memblock.h | |||
@@ -111,40 +111,39 @@ extern void memblock_set_current_limit(phys_addr_t limit); | |||
111 | */ | 111 | */ |
112 | 112 | ||
113 | /** | 113 | /** |
114 | * memblock_region_base_pfn - Return the lowest pfn intersecting with the region | 114 | * memblock_region_memory_base_pfn - Return the lowest pfn intersecting with the memory region |
115 | * @reg: memblock_region structure | 115 | * @reg: memblock_region structure |
116 | */ | 116 | */ |
117 | static inline unsigned long memblock_region_base_pfn(const struct memblock_region *reg) | 117 | static inline unsigned long memblock_region_memory_base_pfn(const struct memblock_region *reg) |
118 | { | 118 | { |
119 | return reg->base >> PAGE_SHIFT; | 119 | return PFN_UP(reg->base); |
120 | } | 120 | } |
121 | 121 | ||
122 | /** | 122 | /** |
123 | * memblock_region_last_pfn - Return the highest pfn intersecting with the region | 123 | * memblock_region_memory_end_pfn - Return the end_pfn this region |
124 | * @reg: memblock_region structure | 124 | * @reg: memblock_region structure |
125 | */ | 125 | */ |
126 | static inline unsigned long memblock_region_last_pfn(const struct memblock_region *reg) | 126 | static inline unsigned long memblock_region_memory_end_pfn(const struct memblock_region *reg) |
127 | { | 127 | { |
128 | return (reg->base + reg->size - 1) >> PAGE_SHIFT; | 128 | return PFN_DOWN(reg->base + reg->size); |
129 | } | 129 | } |
130 | 130 | ||
131 | /** | 131 | /** |
132 | * memblock_region_end_pfn - Return the pfn of the first page following the region | 132 | * memblock_region_reserved_base_pfn - Return the lowest pfn intersecting with the reserved region |
133 | * but not intersecting it | ||
134 | * @reg: memblock_region structure | 133 | * @reg: memblock_region structure |
135 | */ | 134 | */ |
136 | static inline unsigned long memblock_region_end_pfn(const struct memblock_region *reg) | 135 | static inline unsigned long memblock_region_reserved_base_pfn(const struct memblock_region *reg) |
137 | { | 136 | { |
138 | return memblock_region_last_pfn(reg) + 1; | 137 | return PFN_DOWN(reg->base); |
139 | } | 138 | } |
140 | 139 | ||
141 | /** | 140 | /** |
142 | * memblock_region_pages - Return the number of pages covering a region | 141 | * memblock_region_reserved_end_pfn - Return the end_pfn this region |
143 | * @reg: memblock_region structure | 142 | * @reg: memblock_region structure |
144 | */ | 143 | */ |
145 | static inline unsigned long memblock_region_pages(const struct memblock_region *reg) | 144 | static inline unsigned long memblock_region_reserved_end_pfn(const struct memblock_region *reg) |
146 | { | 145 | { |
147 | return memblock_region_end_pfn(reg) - memblock_region_end_pfn(reg); | 146 | return PFN_UP(reg->base + reg->size); |
148 | } | 147 | } |
149 | 148 | ||
150 | #define for_each_memblock(memblock_type, region) \ | 149 | #define for_each_memblock(memblock_type, region) \ |