• Alexandre Ghiti's avatar
    riscv: Move high_memory initialization to setup_bootmem · 625e24a5
    Alexandre Ghiti authored
    high_memory used to be initialized in mem_init, way after setup_bootmem.
    But a call to dma_contiguous_reserve in this function gives rise to the
    below warning because high_memory is equal to 0 and is used at the very
    beginning at cma_declare_contiguous_nid.
    
    It went unnoticed since the move of the kasan region redefined
    KERN_VIRT_SIZE so that it does not encompass -1 anymore.
    
    Fix this by initializing high_memory in setup_bootmem.
    
    ------------[ cut here ]------------
    virt_to_phys used for non-linear address: ffffffffffffffff (0xffffffffffffffff)
    WARNING: CPU: 0 PID: 0 at arch/riscv/mm/physaddr.c:14 __virt_to_phys+0xac/0x1b8
    Modules linked in:
    CPU: 0 PID: 0 Comm: swapper Not tainted 5.17.0-rc1-00007-ga68b89289e26 #27
    Hardware name: riscv-virtio,qemu (DT)
    epc : __virt_to_phys+0xac/0x1b8
     ra : __virt_to_phys+0xac/0x1b8
    epc : ffffffff80014922 ra : ffffffff80014922 sp : ffffffff84a03c30
     gp : ffffffff85866c80 tp : ffffffff84a3f180 t0 : ffffffff86bce657
     t1 : fffffffef09406e8 t2 : 0000000000000000 s0 : ffffffff84a03c70
     s1 : ffffffffffffffff a0 : 000000000000004f a1 : 00000000000f0000
     a2 : 0000000000000002 a3 : ffffffff8011f408 a4 : 0000000000000000
     a5 : 0000000000000000 a6 : 0000000000f00000 a7 : ffffffff84a03747
     s2 : ffffffd800000000 s3 : ffffffff86ef4000 s4 : ffffffff8467f828
     s5 : fffffff800000000 s6 : 8000000000006800 s7 : 0000000000000000
     s8 : 0000000480000000 s9 : 0000000080038ea0 s10: 0000000000000000
     s11: ffffffffffffffff t3 : ffffffff84a035c0 t4 : fffffffef09406e8
     t5 : fffffffef09406e9 t6 : ffffffff84a03758
    status: 0000000000000100 badaddr: 0000000000000000 cause: 0000000000000003
    [<ffffffff8322ef4c>] cma_declare_contiguous_nid+0xf2/0x64a
    [<ffffffff83212a58>] dma_contiguous_reserve_area+0x46/0xb4
    [<ffffffff83212c3a>] dma_contiguous_reserve+0x174/0x18e
    [<ffffffff83208fc2>] paging_init+0x12c/0x35e
    [<ffffffff83206bd2>] setup_arch+0x120/0x74e
    [<ffffffff83201416>] start_kernel+0xce/0x68c
    irq event stamp: 0
    hardirqs last  enabled at (0): [<0000000000000000>] 0x0
    hardirqs last disabled at (0): [<0000000000000000>] 0x0
    softirqs last  enabled at (0): [<0000000000000000>] 0x0
    softirqs last disabled at (0): [<0000000000000000>] 0x0
    ---[ end trace 0000000000000000 ]---
    
    Fixes: f7ae0233 ("riscv: Move KASAN mapping next to the kernel mapping")
    Signed-off-by: default avatarAlexandre Ghiti <alexandre.ghiti@canonical.com>
    Cc: stable@vger.kernel.org
    Signed-off-by: default avatarPalmer Dabbelt <palmer@rivosinc.com>
    625e24a5
init.c 29.9 KB