• Mark Rutland's avatar
    arm64: don't zero DIT on signal return · 12651321
    Mark Rutland authored
    Currently valid_user_regs() treats SPSR_ELx.DIT as a RES0 bit, causing
    it to be zeroed upon exception return, rather than preserved. Thus, code
    relying on DIT will not function as expected, and may expose an
    unexpected timing sidechannel.
    
    Let's remove DIT from the set of RES0 bits, such that it is preserved.
    At the same time, the related comment is updated to better describe the
    situation, and to take into account the most recent documentation of
    SPSR_ELx, in ARM DDI 0487C.a.
    Signed-off-by: default avatarMark Rutland <mark.rutland@arm.com>
    Fixes: 7206dc93 ("arm64: Expose Arm v8.4 features")
    Cc: Catalin Marinas <catalin.marinas@arm.com>
    Cc: Suzuki K Poulose <suzuki.poulose@arm.com>
    Cc: Will Deacon <will.deacon@arm.com>
    Signed-off-by: default avatarWill Deacon <will.deacon@arm.com>
    12651321
ptrace.c 41.3 KB