Message ID | 20221128023643.329091-1-panqinglin2020@iscas.ac.cn (mailing list archive) |
---|---|
State | Accepted |
Commit | 6ff8ca3f93d3cd2a77f051d2d971cf3638d39546 |
Delegated to: | Palmer Dabbelt |
Headers | show |
Series | [RESEND,v1] riscv: mm: call best_map_size many times during linear-mapping | expand |
Context | Check | Description |
---|---|---|
conchuod/patch_count | success | Link |
conchuod/cover_letter | success | Single patches do not need cover letters |
conchuod/tree_selection | success | Guessed tree name to be for-next |
conchuod/fixes_present | success | Fixes tag not required for -next series |
conchuod/verify_signedoff | success | Signed-off-by tag matches author and committer |
conchuod/kdoc | success | Errors and warnings before: 0 this patch: 0 |
conchuod/module_param | success | Was 0 now: 0 |
conchuod/build_rv32_defconfig | success | Build OK |
conchuod/build_warn_rv64 | success | Errors and warnings before: 0 this patch: 0 |
conchuod/dtb_warn_rv64 | success | Errors and warnings before: 0 this patch: 0 |
conchuod/header_inline | success | No static functions without inline keyword in header files |
conchuod/checkpatch | success | total: 0 errors, 0 warnings, 0 checks, 24 lines checked |
conchuod/source_inline | success | Was 0 now: 0 |
conchuod/build_rv64_nommu_k210_defconfig | success | Build OK |
conchuod/verify_fixes | success | No Fixes tag |
conchuod/build_rv64_nommu_virt_defconfig | success | Build OK |
On Mon, 28 Nov 2022 10:36:43 +0800, panqinglin2020@iscas.ac.cn wrote: > From: Qinglin Pan <panqinglin2020@iscas.ac.cn> > > Modify the best_map_size function to give map_size many times instead > of only once, so a memory region can be mapped by both PMD_SIZE and > PAGE_SIZE. > > > [...] Applied, thanks! [1/1] riscv: mm: call best_map_size many times during linear-mapping https://git.kernel.org/palmer/c/6ff8ca3f93d3 Best regards,
Hello: This patch was applied to riscv/linux.git (for-next) by Palmer Dabbelt <palmer@rivosinc.com>: On Mon, 28 Nov 2022 10:36:43 +0800 you wrote: > From: Qinglin Pan <panqinglin2020@iscas.ac.cn> > > Modify the best_map_size function to give map_size many times instead > of only once, so a memory region can be mapped by both PMD_SIZE and > PAGE_SIZE. > > Signed-off-by: Qinglin Pan <panqinglin2020@iscas.ac.cn> > Reviewed-by: Andrew Jones <ajones@ventanamicro.com> > Reviewed-by: Alexandre Ghiti <alexghiti@rivosinc.com> > Tested-by: Alexandre Ghiti <alexghiti@rivosinc.com> > > [...] Here is the summary with links: - [RESEND,v1] riscv: mm: call best_map_size many times during linear-mapping https://git.kernel.org/riscv/c/6ff8ca3f93d3 You are awesome, thank you!
diff --git a/arch/riscv/mm/init.c b/arch/riscv/mm/init.c index b56a0a75533f..1b76d3fe4e26 100644 --- a/arch/riscv/mm/init.c +++ b/arch/riscv/mm/init.c @@ -673,10 +673,11 @@ void __init create_pgd_mapping(pgd_t *pgdp, static uintptr_t __init best_map_size(phys_addr_t base, phys_addr_t size) { /* Upgrade to PMD_SIZE mappings whenever possible */ - if ((base & (PMD_SIZE - 1)) || (size & (PMD_SIZE - 1))) - return PAGE_SIZE; + base &= PMD_SIZE - 1; + if (!base && size >= PMD_SIZE) + return PMD_SIZE; - return PMD_SIZE; + return PAGE_SIZE; } #ifdef CONFIG_XIP_KERNEL @@ -1111,9 +1112,9 @@ static void __init setup_vm_final(void) if (end >= __pa(PAGE_OFFSET) + memory_limit) end = __pa(PAGE_OFFSET) + memory_limit; - map_size = best_map_size(start, end - start); for (pa = start; pa < end; pa += map_size) { va = (uintptr_t)__va(pa); + map_size = best_map_size(pa, end - pa); create_pgd_mapping(swapper_pg_dir, va, pa, map_size, pgprot_from_va(va));