• Amit Daniel Kachhap's avatar
    arm64: ptrauth: Introduce Armv8.3 pointer authentication enhancements · e16aeb07
    Amit Daniel Kachhap authored
    Some Armv8.3 Pointer Authentication enhancements have been introduced
    which are mandatory for Armv8.6 and optional for Armv8.3. These features
    are,
    
    * ARMv8.3-PAuth2 - An enhanced PAC generation logic is added which hardens
      finding the correct PAC value of the authenticated pointer.
    
    * ARMv8.3-FPAC - Fault is generated now when the ptrauth authentication
      instruction fails in authenticating the PAC present in the address.
      This is different from earlier case when such failures just adds an
      error code in the top byte and waits for subsequent load/store to abort.
      The ptrauth instructions which may cause this fault are autiasp, retaa
      etc.
    
    The above features are now represented by additional configurations
    for the Address Authentication cpufeature and a new ESR exception class.
    
    The userspace fault received in the kernel due to ARMv8.3-FPAC is treated
    as Illegal instruction and hence signal SIGILL is injected with ILL_ILLOPN
    as the signal code. Note that this is different from earlier ARMv8.3
    ptrauth where signal SIGSEGV is issued due to Pointer authentication
    failures. The in-kernel PAC fault causes kernel to crash.
    Signed-off-by: default avatarAmit Daniel Kachhap <amit.kachhap@arm.com>
    Reviewed-by: default avatarDave Martin <Dave.Martin@arm.com>
    Link: https://lore.kernel.org/r/20200914083656.21428-4-amit.kachhap@arm.comSigned-off-by: default avatarWill Deacon <will@kernel.org>
    e16aeb07
esr.h 12.1 KB