aboutsummaryrefslogtreecommitdiffstats
path: root/arch/riscv/mm/init.c
diff options
context:
space:
mode:
Diffstat (limited to 'arch/riscv/mm/init.c')
-rw-r--r--arch/riscv/mm/init.c12
1 files changed, 6 insertions, 6 deletions
diff --git a/arch/riscv/mm/init.c b/arch/riscv/mm/init.c
index 9f4bee5e51fd..c77df8142be2 100644
--- a/arch/riscv/mm/init.c
+++ b/arch/riscv/mm/init.c
@@ -17,6 +17,7 @@
17#include <linux/initrd.h> 17#include <linux/initrd.h>
18#include <linux/memblock.h> 18#include <linux/memblock.h>
19#include <linux/swap.h> 19#include <linux/swap.h>
20#include <linux/sizes.h>
20 21
21#include <asm/tlbflush.h> 22#include <asm/tlbflush.h>
22#include <asm/sections.h> 23#include <asm/sections.h>
@@ -25,11 +26,12 @@
25 26
26static void __init zone_sizes_init(void) 27static void __init zone_sizes_init(void)
27{ 28{
28 unsigned long zones_size[MAX_NR_ZONES]; 29 unsigned long max_zone_pfns[MAX_NR_ZONES] = { 0, };
29 30
30 memset(zones_size, 0, sizeof(zones_size)); 31 max_zone_pfns[ZONE_DMA32] = PFN_DOWN(min(4UL * SZ_1G, max_low_pfn));
31 zones_size[ZONE_NORMAL] = max_mapnr; 32 max_zone_pfns[ZONE_NORMAL] = max_low_pfn;
32 free_area_init_node(0, zones_size, pfn_base, NULL); 33
34 free_area_init_nodes(max_zone_pfns);
33} 35}
34 36
35void setup_zero_page(void) 37void setup_zero_page(void)
@@ -39,8 +41,6 @@ void setup_zero_page(void)
39 41
40void __init paging_init(void) 42void __init paging_init(void)
41{ 43{
42 init_mm.pgd = (pgd_t *)pfn_to_virt(csr_read(sptbr));
43
44 setup_zero_page(); 44 setup_zero_page();
45 local_flush_tlb_all(); 45 local_flush_tlb_all();
46 zone_sizes_init(); 46 zone_sizes_init();