On Tue, May 14, 2024 at 04:04:41PM +0200, Björn Töpel wrote: > From: Björn Töpel <bjorn@xxxxxxxxxxxx> > > Add a parameter to the direct map setup function, so it can be used in > arch_add_memory() later. > > Signed-off-by: Björn Töpel <bjorn@xxxxxxxxxxxx> Reviewed-by: Oscar Salvador <osalvador@xxxxxxx> > --- > arch/riscv/mm/init.c | 15 ++++++--------- > 1 file changed, 6 insertions(+), 9 deletions(-) > > diff --git a/arch/riscv/mm/init.c b/arch/riscv/mm/init.c > index c969427eab88..6f72b0b2b854 100644 > --- a/arch/riscv/mm/init.c > +++ b/arch/riscv/mm/init.c > @@ -1227,7 +1227,7 @@ asmlinkage void __init setup_vm(uintptr_t dtb_pa) > } > > static void __meminit create_linear_mapping_range(phys_addr_t start, phys_addr_t end, > - uintptr_t fixed_map_size) > + uintptr_t fixed_map_size, const pgprot_t *pgprot) > { > phys_addr_t pa; > uintptr_t va, map_size; > @@ -1238,7 +1238,7 @@ static void __meminit create_linear_mapping_range(phys_addr_t start, phys_addr_t > best_map_size(pa, va, end - pa); > > create_pgd_mapping(swapper_pg_dir, va, pa, map_size, > - pgprot_from_va(va)); > + pgprot ? *pgprot : pgprot_from_va(va)); > } > } > > @@ -1282,22 +1282,19 @@ static void __init create_linear_mapping_page_table(void) > if (end >= __pa(PAGE_OFFSET) + memory_limit) > end = __pa(PAGE_OFFSET) + memory_limit; > > - create_linear_mapping_range(start, end, 0); > + create_linear_mapping_range(start, end, 0, NULL); > } > > #ifdef CONFIG_STRICT_KERNEL_RWX > - create_linear_mapping_range(ktext_start, ktext_start + ktext_size, 0); > - create_linear_mapping_range(krodata_start, > - krodata_start + krodata_size, 0); > + create_linear_mapping_range(ktext_start, ktext_start + ktext_size, 0, NULL); > + create_linear_mapping_range(krodata_start, krodata_start + krodata_size, 0, NULL); > > memblock_clear_nomap(ktext_start, ktext_size); > memblock_clear_nomap(krodata_start, krodata_size); > #endif > > #ifdef CONFIG_KFENCE > - create_linear_mapping_range(kfence_pool, > - kfence_pool + KFENCE_POOL_SIZE, > - PAGE_SIZE); > + create_linear_mapping_range(kfence_pool, kfence_pool + KFENCE_POOL_SIZE, PAGE_SIZE, NULL); > > memblock_clear_nomap(kfence_pool, KFENCE_POOL_SIZE); > #endif > -- > 2.40.1 > -- Oscar Salvador SUSE Labs