mirror of https://gitee.com/openkylin/linux.git
[ARM] Fix show_mem() for discontigmem
show_mem() was assuming incorrectly that the mem_map for any node started at PFN 0. This is obviously wrong; fix it to take account of node_start_pfn. Signed-off-by: Russell King <rmk+kernel@arm.linux.org.uk>
This commit is contained in:
parent
30f0e0f415
commit
204ecae4e1
|
@ -52,15 +52,18 @@ void show_mem(void)
|
||||||
printk("Free swap: %6ldkB\n", nr_swap_pages<<(PAGE_SHIFT-10));
|
printk("Free swap: %6ldkB\n", nr_swap_pages<<(PAGE_SHIFT-10));
|
||||||
|
|
||||||
for_each_online_node(node) {
|
for_each_online_node(node) {
|
||||||
|
pg_data_t *n = NODE_DATA(node);
|
||||||
|
struct page *map = n->node_mem_map - n->node_start_pfn;
|
||||||
|
|
||||||
for_each_nodebank (i,mi,node) {
|
for_each_nodebank (i,mi,node) {
|
||||||
unsigned int pfn1, pfn2;
|
unsigned int pfn1, pfn2;
|
||||||
struct page *page, *end;
|
struct page *page, *end;
|
||||||
|
|
||||||
pfn1 = mi->bank[i].start >> PAGE_SHIFT;
|
pfn1 = __phys_to_pfn(mi->bank[i].start);
|
||||||
pfn2 = (mi->bank[i].size + mi->bank[i].start) >> PAGE_SHIFT;
|
pfn2 = __phys_to_pfn(mi->bank[i].size + mi->bank[i].start);
|
||||||
|
|
||||||
page = NODE_MEM_MAP(node) + pfn1;
|
page = map + pfn1;
|
||||||
end = NODE_MEM_MAP(node) + pfn2;
|
end = map + pfn2;
|
||||||
|
|
||||||
do {
|
do {
|
||||||
total++;
|
total++;
|
||||||
|
|
Loading…
Reference in New Issue