hc
2023-12-11 d2ccde1c8e90d38cee87a1b0309ad2827f3fd30d
kernel/arch/arm/mm/pmsa-v7.c
....@@ -231,12 +231,13 @@
231231 void __init pmsav7_adjust_lowmem_bounds(void)
232232 {
233233 phys_addr_t specified_mem_size = 0, total_mem_size = 0;
234
- struct memblock_region *reg;
235
- bool first = true;
236234 phys_addr_t mem_start;
237235 phys_addr_t mem_end;
236
+ phys_addr_t reg_start, reg_end;
238237 unsigned int mem_max_regions;
239
- int num, i;
238
+ bool first = true;
239
+ int num;
240
+ u64 i;
240241
241242 /* Free-up PMSAv7_PROBE_REGION */
242243 mpu_min_region_order = __mpu_min_region_order();
....@@ -262,19 +263,19 @@
262263 mem_max_regions -= num;
263264 #endif
264265
265
- for_each_memblock(memory, reg) {
266
+ for_each_mem_range(i, &reg_start, &reg_end) {
266267 if (first) {
267268 phys_addr_t phys_offset = PHYS_OFFSET;
268269
269270 /*
270271 * Initially only use memory continuous from
271272 * PHYS_OFFSET */
272
- if (reg->base != phys_offset)
273
+ if (reg_start != phys_offset)
273274 panic("First memory bank must be contiguous from PHYS_OFFSET");
274275
275
- mem_start = reg->base;
276
- mem_end = reg->base + reg->size;
277
- specified_mem_size = reg->size;
276
+ mem_start = reg_start;
277
+ mem_end = reg_end;
278
+ specified_mem_size = mem_end - mem_start;
278279 first = false;
279280 } else {
280281 /*
....@@ -283,8 +284,8 @@
283284 * blocks separately while iterating)
284285 */
285286 pr_notice("Ignoring RAM after %pa, memory at %pa ignored\n",
286
- &mem_end, &reg->base);
287
- memblock_remove(reg->base, 0 - reg->base);
287
+ &mem_end, &reg_start);
288
+ memblock_remove(reg_start, 0 - reg_start);
288289 break;
289290 }
290291 }