• A
    RISC-V: Do not rely on initrd_start/end computed during early dt parsing · 4400231c
    Atish Patra 提交于
    Currently, initrd_start/end are computed during early_init_dt_scan
    but used during arch_setup. We will get the following panic if initrd is used
    and CONFIG_DEBUG_VIRTUAL is turned on.
    
    [    0.000000] ------------[ cut here ]------------
    [    0.000000] kernel BUG at arch/riscv/mm/physaddr.c:33!
    [    0.000000] Kernel BUG [#1]
    [    0.000000] Modules linked in:
    [    0.000000] CPU: 0 PID: 0 Comm: swapper Not tainted 5.8.0-rc4-00015-ged0b226fed02 #886
    [    0.000000] epc: ffffffe0002058d2 ra : ffffffe0000053f0 sp : ffffffe001001f40
    [    0.000000]  gp : ffffffe00106e250 tp : ffffffe001009d40 t0 : ffffffe00107ee28
    [    0.000000]  t1 : 0000000000000000 t2 : ffffffe000a2e880 s0 : ffffffe001001f50
    [    0.000000]  s1 : ffffffe0001383e8 a0 : ffffffe00c087e00 a1 : 0000000080200000
    [    0.000000]  a2 : 00000000010bf000 a3 : ffffffe00106f3c8 a4 : ffffffe0010bf000
    [    0.000000]  a5 : ffffffe000000000 a6 : 0000000000000006 a7 : 0000000000000001
    [    0.000000]  s2 : ffffffe00106f068 s3 : ffffffe00106f070 s4 : 0000000080200000
    [    0.000000]  s5 : 0000000082200000 s6 : 0000000000000000 s7 : 0000000000000000
    [    0.000000]  s8 : 0000000080011010 s9 : 0000000080012700 s10: 0000000000000000
    [    0.000000]  s11: 0000000000000000 t3 : 000000000001fe30 t4 : 000000000001fe30
    [    0.000000]  t5 : 0000000000000000 t6 : ffffffe00107c471
    [    0.000000] status: 0000000000000100 badaddr: 0000000000000000 cause: 0000000000000003
    [    0.000000] random: get_random_bytes called from print_oops_end_marker+0x22/0x46 with crng_init=0
    
    To avoid the error, initrd_start/end can be computed from phys_initrd_start/size
    in setup itself. It also improves the initrd placement by aligning the start
    and size with the page size.
    
    Fixes: 76d2a049 ("RISC-V: Init and Halt Code")
    Signed-off-by: NAtish Patra <atish.patra@wdc.com>
    Signed-off-by: NPalmer Dabbelt <palmerdabbelt@google.com>
    4400231c
init.c 14.7 KB