diff options
author | Sami Tolvanen <samitolvanen@google.com> | 2019-10-31 20:46:52 +0100 |
---|---|---|
committer | Will Deacon <will@kernel.org> | 2020-01-16 18:32:34 +0100 |
commit | c54f90c2627cc316d365e3073614731e17dbc631 (patch) | |
tree | 424c92cddd6f6c13679e25cb9009994e87e0d745 /arch/arm64/mm | |
parent | arm64: lse: fix LSE atomics with LLVM's integrated assembler (diff) | |
download | linux-c54f90c2627cc316d365e3073614731e17dbc631.tar.xz linux-c54f90c2627cc316d365e3073614731e17dbc631.zip |
arm64: fix alternatives with LLVM's integrated assembler
LLVM's integrated assembler fails with the following error when
building KVM:
<inline asm>:12:6: error: expected absolute expression
.if kvm_update_va_mask == 0
^
<inline asm>:21:6: error: expected absolute expression
.if kvm_update_va_mask == 0
^
<inline asm>:24:2: error: unrecognized instruction mnemonic
NOT_AN_INSTRUCTION
^
LLVM ERROR: Error parsing inline asm
These errors come from ALTERNATIVE_CB and __ALTERNATIVE_CFG,
which test for the existence of the callback parameter in inline
assembly using the following expression:
" .if " __stringify(cb) " == 0\n"
This works with GNU as, but isn't supported by LLVM. This change
splits __ALTERNATIVE_CFG and ALTINSTR_ENTRY into separate macros
to fix the LLVM build.
Link: https://github.com/ClangBuiltLinux/linux/issues/472
Signed-off-by: Sami Tolvanen <samitolvanen@google.com>
Tested-by: Nick Desaulniers <ndesaulniers@google.com>
Reviewed-by: Kees Cook <keescook@chromium.org>
Signed-off-by: Will Deacon <will@kernel.org>
Diffstat (limited to 'arch/arm64/mm')
0 files changed, 0 insertions, 0 deletions