• Mark Rutland's avatar
    arm64: asm-extable: add asm uacess helpers · 59e8a1ce
    Mark Rutland authored
    In subsequent patches we want to explciitly annotate uaccess fixups in
    assembly files.
    
    We have existing helpers for this for inline assembly, but due to
    differing stringification requirements it's not possible to have a
    single definition that we can use for both inline asm and plain asm
    files. So as with other cases (e.g. gpr-regnum.h), we must prove
    separate helprs for plain asm and inline asm.
    
    So that we can do so, this patch adds helpers to define
    EX_TYPE_UACCESS_ERR_ZERO fixups in plain assembly. These correspond 1-1
    with the inline assembly versions except for the absence of
    stringification. No plain assmebly heleprs are added for
    EX_TYPE_LOAD_UNALIGNED_ZEROPAD fixups as these only exist for a single C
    function.
    
    For copy_{to,from}_user() we'll need fixups with regs and err, so I've
    added _ASM_EXTABLE_UACCESS(insn, fixup), where both the error and zero
    registers are WZR.
    
    For clarity, the existing `_asm_extable` assemgbly maco is now defined
    in terms of the _ASM_EXTABLE() CPP macro, making the CPP macros
    canonical in all cases.
    
    There should be no functional change as a result of this patch.
    Signed-off-by: default avatarMark Rutland <mark.rutland@arm.com>
    Signed-off-by: default avatarTong Tiangen <tongtiangen@huawei.com>
    Link: https://lore.kernel.org/r/20220621072638.1273594-4-tongtiangen@huawei.comSigned-off-by: default avatarWill Deacon <will@kernel.org>
    59e8a1ce
asm-extable.h 3.65 KB