• Catalin Marinas's avatar
    arm64: mte: Allow user control of the tag check mode via prctl() · 1c101da8
    Catalin Marinas authored
    By default, even if PROT_MTE is set on a memory range, there is no tag
    check fault reporting (SIGSEGV). Introduce a set of option to the
    exiting prctl(PR_SET_TAGGED_ADDR_CTRL) to allow user control of the tag
    check fault mode:
    
      PR_MTE_TCF_NONE  - no reporting (default)
      PR_MTE_TCF_SYNC  - synchronous tag check fault reporting
      PR_MTE_TCF_ASYNC - asynchronous tag check fault reporting
    
    These options translate into the corresponding SCTLR_EL1.TCF0 bitfield,
    context-switched by the kernel. Note that the kernel accesses to the
    user address space (e.g. read() system call) are not checked if the user
    thread tag checking mode is PR_MTE_TCF_NONE or PR_MTE_TCF_ASYNC. If the
    tag checking mode is PR_MTE_TCF_SYNC, the kernel makes a best effort to
    check its user address accesses, however it cannot always guarantee it.
    Signed-off-by: default avatarCatalin Marinas <catalin.marinas@arm.com>
    Cc: Will Deacon <will@kernel.org>
    1c101da8
mte.c 2.92 KB