[issue report] ARM: compile error of frame size

Geert Uytterhoeven geert at linux-m68k.org
Tue Jul 29 00:49:48 PDT 2025


Hi Arnd,

On Tue, 29 Jul 2025 at 09:27, Arnd Bergmann <arnd at arndb.de> wrote:
> On Tue, Jul 29, 2025, at 09:15, Geert Uytterhoeven wrote:
> > On Tue, 29 Jul 2025 at 02:12, Kuninori Morimoto
> > <kuninori.morimoto.gx at renesas.com> wrote:
> >> > >         > grep CONFIG_FRAME_WARN .config
> >> > >         CONFIG_FRAME_WARN=2040
> >> > >
> >> > >         > git diff
> >> > >         diff --git a/arch/arm/boot/compressed/Makefile b/arch/arm/boot/compressed/Makefile
> >> > >         index d61369b1eabe..c5173bd82380 100644
> >> > >         --- a/arch/arm/boot/compressed/Makefile
> >> > >         +++ b/arch/arm/boot/compressed/Makefile
> >> > >         @@ -80,7 +80,7 @@ libfdt_objs := fdt_rw.o fdt_ro.o fdt_wip.o fdt.o
> >> > >
> >> > >          ifeq ($(CONFIG_ARM_ATAG_DTB_COMPAT),y)
> >> > >          CFLAGS_REMOVE_atags_to_fdt.o += -Wframe-larger-than=${CONFIG_FRAME_WARN}
> >> > > -        CFLAGS_atags_to_fdt.o += -Wframe-larger-than=1280
> >> > > +        CFLAGS_atags_to_fdt.o += -Wframe-larger-than=2040
> >> > >          OBJS   += $(libfdt_objs) atags_to_fdt.o
> >> > >          endif
> >> > >          ifeq ($(CONFIG_USE_OF),y)
> >> (snip)
> >> > Yes it is.  And it is hard to fix, according to the maple_tree maintainer:
> >>
> >> Hmm...
> >> Actually I have tried to same solution (= remove or fix the big node), but
> >> noticed there are many such code. My suggested was very simple solution
> >> I guess, but I'm not sure detail of ARM limitation, and/or it can solve all
> >> cases, etc...
> >>
> >> But other CPU (like ARM64) doesn't have this issue, so we can follow same
> >> way (= allow large frame) I guess.
> >
> > I do see it in one my arm64 builds, it depends on your kernel config:
> >
> >     lib/maple_tree.c: In function ‘mas_wr_spanning_store’:
> >     lib/maple_tree.c:3812:1: warning: the frame size of 1040 bytes is
> > larger than 1024 bytes [-Wframe-larger-than=] 3812 | }
> >
> > I guess Arnd has seen it in his randconfig builds, too...
> >
> >> Does ARM has some reason which can't use large frame ? If not, do you think
> >> we can allow to use it on ARM ?
> >
> > (stacked) Large frames may cause kernel stack overflow.
>
> The version below works around the warning for arm, arm64 and x86
> on both gcc and clang.

Thanks, that indeed works for my arm64 config that triggered it before.

Gr{oetje,eeting}s,

                        Geert

-- 
Geert Uytterhoeven -- There's lots of Linux beyond ia32 -- geert at linux-m68k.org

In personal conversations with technical people, I call myself a hacker. But
when I'm talking to journalists I just say "programmer" or something like that.
                                -- Linus Torvalds



More information about the linux-arm-kernel mailing list