• Vincent Chen's avatar
    riscv: Correct the handling of unexpected ebreak in do_trap_break() · 8bb0daef
    Vincent Chen authored
    For the kernel space, all ebreak instructions are determined at compile
    time because the kernel space debugging module is currently unsupported.
    Hence, it should be treated as a bug if an ebreak instruction which does
    not belong to BUG_TRAP_TYPE_WARN or BUG_TRAP_TYPE_BUG is executed in
    kernel space. For the userspace, debugging module or user problem may
    intentionally insert an ebreak instruction to trigger a SIGTRAP signal.
    To approach the above two situations, the do_trap_break() will direct
    the BUG_TRAP_TYPE_NONE ebreak exception issued in kernel space to die()
    and will send a SIGTRAP to the trapped process only when the ebreak is
    in userspace.
    Signed-off-by: default avatarVincent Chen <vincent.chen@sifive.com>
    Reviewed-by: default avatarChristoph Hellwig <hch@lst.de>
    [paul.walmsley@sifive.com: fixed checkpatch issue]
    Signed-off-by: default avatarPaul Walmsley <paul.walmsley@sifive.com>
    8bb0daef
traps.c 4.37 KB