• Kristina Martsenko's avatar
    arm64: documentation: document tagged pointer stack constraints · f0e421b1
    Kristina Martsenko authored
    Some kernel features don't currently work if a task puts a non-zero
    address tag in its stack pointer, frame pointer, or frame record entries
    (FP, LR).
    
    For example, with a tagged stack pointer, the kernel can't deliver
    signals to the process, and the task is killed instead. As another
    example, with a tagged frame pointer or frame records, perf fails to
    generate call graphs or resolve symbols.
    
    For now, just document these limitations, instead of finding and fixing
    everything that doesn't work, as it's not known if anyone needs to use
    tags in these places anyway.
    
    In addition, as requested by Dave Martin, generalize the limitations
    into a general kernel address tag policy, and refactor
    tagged-pointers.txt to include it.
    
    Fixes: d50240a5 ("arm64: mm: permit use of tagged pointers at EL0")
    Cc: <stable@vger.kernel.org> # 3.12.x-
    Reviewed-by: default avatarDave Martin <Dave.Martin@arm.com>
    Acked-by: default avatarWill Deacon <will.deacon@arm.com>
    Signed-off-by: default avatarKristina Martsenko <kristina.martsenko@arm.com>
    Signed-off-by: default avatarCatalin Marinas <catalin.marinas@arm.com>
    f0e421b1
tagged-pointers.txt 2.24 KB