Hi all,
This code isn't really relevant to what I'm working on (it isn't compiled
in to kernels for the ip27), but I just noticed it, and it looks broken:
/* Find the highest page frame number we have available. */
max_pfn = 0;
for (i = 0; i < boot_mem_map.nr_map; i++) {
unsigned long start, end;
if (boot_mem_map.map[i].type != BOOT_MEM_RAM)
continue;
***** start = PFN_UP(boot_mem_map.map[i].addr);
***** end = PFN_DOWN(boot_mem_map.map[i].addr
+ boot_mem_map.map[i].size);
***** if (start >= end)
continue;
if (end > max_pfn)
max_pfn = end;
}
That test looks like it will always succeed... and it looks like the
author wanted it to be a sanity check.
Why all this business with PFN_UP and PFN_DOWN? (They are bit
shifts... PFN_UP shifts left, PFN_DOWN shifts right)
Cheers,
Andrew