• Anup Patel's avatar
    RISC-V: Check clint_time_val before use · aa988760
    Anup Patel authored
    The NoMMU kernel is broken for QEMU virt machine from Linux-5.9-rc6
    because clint_time_val is used even before CLINT driver is probed
    at following places:
    1. rand_initialize() calls get_cycles() which in-turn uses
       clint_time_val
    2. boot_init_stack_canary() calls get_cycles() which in-turn
       uses clint_time_val
    
    The issue#1 (above) is fixed by providing custom random_get_entropy()
    for RISC-V NoMMU kernel. For issue#2 (above), we remove dependency of
    boot_init_stack_canary() on get_cycles() and this is aligned with the
    boot_init_stack_canary() implementations of ARM, ARM64 and MIPS kernel.
    
    Fixes: d5be89a8 ("RISC-V: Resurrect the MMIO timer implementation for M-mode systems")
    Signed-off-by: default avatarAnup Patel <anup.patel@wdc.com>
    Tested-by: default avatarDamien Le Moal <damien.lemoal@wdc.com>
    Signed-off-by: default avatarPalmer Dabbelt <palmerdabbelt@google.com>
    aa988760
stackprotector.h 717 Bytes