Messages in this thread | | | From | Nick Desaulniers <> | Date | Wed, 29 Sep 2021 12:14:36 -0700 | Subject | Re: [PATCH] ARM: mm: proc-macros: ensure *_tlb_fns are 4B aligned |
| |
On Wed, Sep 29, 2021 at 12:10 PM Nick Desaulniers <ndesaulniers@google.com> wrote: > > + Dave (Dave, I got a bounceback on your linaro.org email address. > Consider sending a patch updating the .mailmap) > > On Wed, Sep 29, 2021 at 12:08 PM Nick Desaulniers > <ndesaulniers@google.com> wrote: > > > > QEMU 6.1.0 is more correct about trapping on misaligned accesses. 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/ > > Debugged-by: Ard Biesheuvel <ardb@kernel.org> > > Debugged-by: Nathan Chancellor <nathan@kernel.org> > > Debugged-by: Richard Henderson <richard.henderson@linaro.org> > > Suggested-by: Ard Biesheuvel <ardb@kernel.org> > > Signed-off-by: Nick Desaulniers <ndesaulniers@google.com> > > --- > > arch/arm/Kconfig | 1 +
d'oh, had an unintentional `-a` when I did `git commit`. Will resend a v2...
> > arch/arm/mm/proc-macros.S | 1 + > > 2 files changed, 2 insertions(+) > > > > diff --git a/arch/arm/Kconfig b/arch/arm/Kconfig > > index fc196421b2ce..b760dd45b734 100644 > > --- a/arch/arm/Kconfig > > +++ b/arch/arm/Kconfig > > @@ -92,6 +92,7 @@ config ARM > > select HAVE_FTRACE_MCOUNT_RECORD if !XIP_KERNEL > > select HAVE_FUNCTION_GRAPH_TRACER if !THUMB2_KERNEL && !CC_IS_CLANG > > select HAVE_FUNCTION_TRACER if !XIP_KERNEL > > + select HAVE_FUTEX_CMPXCHG if FUTEX > > select HAVE_GCC_PLUGINS > > select HAVE_HW_BREAKPOINT if PERF_EVENTS && (CPU_V6 || CPU_V6K || CPU_V7) > > select HAVE_IRQ_TIME_ACCOUNTING > > 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_range > > -- > > 2.33.0.685.g46640cef36-goog > > > > > -- > Thanks, > ~Nick Desaulniers
-- Thanks, ~Nick Desaulniers
| |