@@ -437,7 +437,7 @@ void __init paging_init(void)
437
437
}
438
438
439
439
min_addr = m68k_memory [0 ].addr ;
440
- max_addr = min_addr + m68k_memory [0 ].size ;
440
+ max_addr = min_addr + m68k_memory [0 ].size - 1 ;
441
441
memblock_add_node (m68k_memory [0 ].addr , m68k_memory [0 ].size , 0 ,
442
442
MEMBLOCK_NONE );
443
443
for (i = 1 ; i < m68k_num_memory ;) {
@@ -452,21 +452,21 @@ void __init paging_init(void)
452
452
}
453
453
memblock_add_node (m68k_memory [i ].addr , m68k_memory [i ].size , i ,
454
454
MEMBLOCK_NONE );
455
- addr = m68k_memory [i ].addr + m68k_memory [i ].size ;
455
+ addr = m68k_memory [i ].addr + m68k_memory [i ].size - 1 ;
456
456
if (addr > max_addr )
457
457
max_addr = addr ;
458
458
i ++ ;
459
459
}
460
460
m68k_memoffset = min_addr - PAGE_OFFSET ;
461
- m68k_virt_to_node_shift = fls (max_addr - min_addr - 1 ) - 6 ;
461
+ m68k_virt_to_node_shift = fls (max_addr - min_addr ) - 6 ;
462
462
463
463
module_fixup (NULL , __start_fixup , __stop_fixup );
464
464
flush_icache ();
465
465
466
- high_memory = phys_to_virt (max_addr );
466
+ high_memory = phys_to_virt (max_addr ) + 1 ;
467
467
468
468
min_low_pfn = availmem >> PAGE_SHIFT ;
469
- max_pfn = max_low_pfn = max_addr >> PAGE_SHIFT ;
469
+ max_pfn = max_low_pfn = ( max_addr >> PAGE_SHIFT ) + 1 ;
470
470
471
471
/* Reserve kernel text/data/bss and the memory allocated in head.S */
472
472
memblock_reserve (m68k_memory [0 ].addr , availmem - m68k_memory [0 ].addr );
0 commit comments