Re: [PATCH v2] ARM: mm: proc-macros: ensure *_tlb_fns are 4B aligned
From: Nick Desaulniers <hidden>
Date: 2021-09-29 21:00:21
Also in:
lkml, llvm
On Wed, Sep 29, 2021 at 1:57 PM Ard Biesheuvel [off-list ref] wrote:
On Wed, 29 Sept 2021 at 21:20, Nick Desaulniers [off-list ref] wrote:quoted
QEMU 6.1.0 is more correct about trapping on misaligned accesses.Btw, this is not entirely relevant. QEMU now behaves like every single hardware implementation does, and reports an alignment fault when using a load-multiple instruction on an address that is not 32-bit aligned, as the architecture requires.
Sure, I can drop that line from the commit message when submitting to RMK's queue.
quoted
A kernel built with CONFIG_THUMB2_KERNEL=y and using clang as the assembler could generate non-naturally-aligned v7wbi_tlb_fns which results in a boot failure. The original commit adding the macro missed the .align directive on this data. Fixes: 66a625a88174 ("ARM: mm: proc-macros: Add generic proc/cache/tlb struct definition macros") Link: https://github.com/ClangBuiltLinux/linux/issues/1447 Link: https://lore.kernel.org/all/0699da7b-354f-aecc-a62f-e25693209af4@linaro.org/ (local) Debugged-by: Ard Biesheuvel [off-list ref] Debugged-by: Nathan Chancellor [off-list ref] Debugged-by: Richard Henderson [off-list ref] Suggested-by: Ard Biesheuvel <ardb@kernel.org> Acked-by: Ard Biesheuvel <ardb@kernel.org> Signed-off-by: Nick Desaulniers <redacted> --- Changes V1 -> V2: * Drop accidentally committed Kconfig change. * Pick up Ard's AB tag. arch/arm/mm/proc-macros.S | 1 + 1 file changed, 1 insertion(+)diff --git a/arch/arm/mm/proc-macros.S b/arch/arm/mm/proc-macros.S index e2c743aa2eb2..d9f7dfe2a7ed 100644 --- a/arch/arm/mm/proc-macros.S +++ b/arch/arm/mm/proc-macros.S@@ -340,6 +340,7 @@ ENTRY(\name\()_cache_fns) .macro define_tlb_functions name:req, flags_up:req, flags_smp .type \name\()_tlb_fns, #object + .align 2 ENTRY(\name\()_tlb_fns) .long \name\()_flush_user_tlb_range .long \name\()_flush_kern_tlb_rangebase-commit: 02d5e016800d082058b3d3b7c3ede136cdc6ddcb prerequisite-patch-id: 3edbe4a8485c7a75a61dbbe299e8ce1985d87ee0 -- 2.33.0.685.g46640cef36-goog
-- Thanks, ~Nick Desaulniers _______________________________________________ linux-arm-kernel mailing list linux-arm-kernel@lists.infradead.org http://lists.infradead.org/mailman/listinfo/linux-arm-kernel