diff options
Diffstat (limited to 'arch/riscv/mm/init.c')
-rw-r--r-- | arch/riscv/mm/init.c | 12 |
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 | ||
26 | static void __init zone_sizes_init(void) | 27 | static 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 | ||
35 | void setup_zero_page(void) | 37 | void setup_zero_page(void) |
@@ -39,8 +41,6 @@ void setup_zero_page(void) | |||
39 | 41 | ||
40 | void __init paging_init(void) | 42 | void __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(); |