Message ID | 20210809151021.5137-1-david@ixit.cz (mailing list archive) |
---|---|
State | New, archived |
Headers | show |
Series | ARM: atags_to_fdt: don't warn about stack size | expand |
On Mon, Aug 09, 2021 at 05:10:21PM +0200, David Heidelberg wrote: > The merge_fdt_bootargs() function by definition consumes more than 1024 > bytes of stack because it has a 1024 byte command line on the stack, > meaning that we always get a warning when building this file: > > arch/arm/boot/compressed/atags_to_fdt.c: In function 'merge_fdt_bootargs': > arch/arm/boot/compressed/atags_to_fdt.c:98:1: warning: the frame size of 1032 bytes is larger than 1024 bytes [-Wframe-larger-than=] > > However, as this is the decompressor and we know that it has a very shallow > call chain, and we do not actually risk overflowing the kernel stack > at runtime here. > > This just shuts up the warning by disabling the warning flag for this > file. > > Tested on Nexus 7 2012 builds. > > Original Author: Arnd Bergmann <arnd@arndb.de> > Reference: https://lore.kernel.org/lkml/8232115.18ykgQ6J5T@wuerfel/ > > Cc: Arnd Bergmann <arnd@arndb.de> > Cc: Nicolas Pitre <nico@linaro.org> > Cc: Russell King <linux@arm.linux.org.uk> > Cc: Ard Biesheuvel <ard.biesheuvel@linaro.org> > Cc: Marc Zyngier <marc.zyngier@arm.com> > Cc: linux-kernel@vger.kernel.org > Cc: linux-arm-kernel@lists.infradead.org > > Signed-off-by: David Heidelberg <david@ixit.cz> I assume Arnd never sent his v3 from what I see in the thread you link to above. This needs to go to the patch system to be applied. Details in my signature below. Thanks.
On Mon, 9 Aug 2021, David Heidelberg wrote: > The merge_fdt_bootargs() function by definition consumes more than 1024 > bytes of stack because it has a 1024 byte command line on the stack, > meaning that we always get a warning when building this file: > > arch/arm/boot/compressed/atags_to_fdt.c: In function 'merge_fdt_bootargs': > arch/arm/boot/compressed/atags_to_fdt.c:98:1: warning: the frame size of 1032 bytes is larger than 1024 bytes [-Wframe-larger-than=] > > However, as this is the decompressor and we know that it has a very shallow > call chain, and we do not actually risk overflowing the kernel stack > at runtime here. > > This just shuts up the warning by disabling the warning flag for this > file. > > Tested on Nexus 7 2012 builds. > > Original Author: Arnd Bergmann <arnd@arndb.de> > Reference: https://lore.kernel.org/lkml/8232115.18ykgQ6J5T@wuerfel/ > > Cc: Arnd Bergmann <arnd@arndb.de> > Cc: Nicolas Pitre <nico@linaro.org> > Cc: Russell King <linux@arm.linux.org.uk> > Cc: Ard Biesheuvel <ard.biesheuvel@linaro.org> > Cc: Marc Zyngier <marc.zyngier@arm.com> > Cc: linux-kernel@vger.kernel.org > Cc: linux-arm-kernel@lists.infradead.org > > Signed-off-by: David Heidelberg <david@ixit.cz> Acked-by: Nicolas Pitre <nico@fluxnic.net> > --- > arch/arm/boot/compressed/Makefile | 2 ++ > 1 file changed, 2 insertions(+) > > diff --git a/arch/arm/boot/compressed/Makefile b/arch/arm/boot/compressed/Makefile > index 9d91ae1091b0..91265e7ff672 100644 > --- a/arch/arm/boot/compressed/Makefile > +++ b/arch/arm/boot/compressed/Makefile > @@ -85,6 +85,8 @@ compress-$(CONFIG_KERNEL_LZ4) = lz4 > 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 > OBJS += $(libfdt_objs) atags_to_fdt.o > endif > ifeq ($(CONFIG_USE_OF),y) > -- > 2.30.2 > >
On Mon, Aug 9, 2021 at 5:24 PM Russell King (Oracle) <linux@armlinux.org.uk> wrote: > On Mon, Aug 09, 2021 at 05:10:21PM +0200, David Heidelberg wrote: > > Signed-off-by: David Heidelberg <david@ixit.cz> Acked-by: Arnd Bergmann <arnd@arndb.de> (or keep my original Signed-off-by if you like) > I assume Arnd never sent his v3 from what I see in the thread you link > to above. Yes, it's in my ever-growing backlog of things I plan to eventually resubmit. In this case, I actually have a different patch in my tree, but that in turn depends on other stuff I have to submit first (reorganizing the way that warning options get handled based on compiler version etc), and the version here is what works on current mainline kernels. Arnd
Thank you, in next iteration I'll keep you as author and keep your S-off-by -------- Původní zpráva -------- Odesílatel: Arnd Bergmann <arnd@arndb.de> Odesláno: 9. srpna 2021 16:02:36 UTC Komu: "Russell King (Oracle)" <linux@armlinux.org.uk> Kopie: David Heidelberg <david@ixit.cz>, Arnd Bergmann <arnd@arndb.de>, Jon Medhurst <tixy@linaro.org>, Ard Biesheuvel <ard.biesheuvel@linaro.org>, Marc Zyngier <marc.zyngier@arm.com>, Nicolas Pitre <nico@linaro.org>, Linux Kernel Mailing List <linux-kernel@vger.kernel.org>, Linux ARM <linux-arm-kernel@lists.infradead.org> Předmět: Re: [PATCH] ARM: atags_to_fdt: don't warn about stack size On Mon, Aug 9, 2021 at 5:24 PM Russell King (Oracle) <linux@armlinux.org.uk> wrote: > On Mon, Aug 09, 2021 at 05:10:21PM +0200, David Heidelberg wrote: > > Signed-off-by: David Heidelberg <david@ixit.cz> Acked-by: Arnd Bergmann <arnd@arndb.de> (or keep my original Signed-off-by if you like) > I assume Arnd never sent his v3 from what I see in the thread you link > to above. Yes, it's in my ever-growing backlog of things I plan to eventually resubmit. In this case, I actually have a different patch in my tree, but that in turn depends on other stuff I have to submit first (reorganizing the way that warning options get handled based on compiler version etc), and the version here is what works on current mainline kernels. Arnd S pozdravem a přáním krásného dne David Heidelberg
diff --git a/arch/arm/boot/compressed/Makefile b/arch/arm/boot/compressed/Makefile index 9d91ae1091b0..91265e7ff672 100644 --- a/arch/arm/boot/compressed/Makefile +++ b/arch/arm/boot/compressed/Makefile @@ -85,6 +85,8 @@ compress-$(CONFIG_KERNEL_LZ4) = lz4 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 OBJS += $(libfdt_objs) atags_to_fdt.o endif ifeq ($(CONFIG_USE_OF),y)
The merge_fdt_bootargs() function by definition consumes more than 1024 bytes of stack because it has a 1024 byte command line on the stack, meaning that we always get a warning when building this file: arch/arm/boot/compressed/atags_to_fdt.c: In function 'merge_fdt_bootargs': arch/arm/boot/compressed/atags_to_fdt.c:98:1: warning: the frame size of 1032 bytes is larger than 1024 bytes [-Wframe-larger-than=] However, as this is the decompressor and we know that it has a very shallow call chain, and we do not actually risk overflowing the kernel stack at runtime here. This just shuts up the warning by disabling the warning flag for this file. Tested on Nexus 7 2012 builds. Original Author: Arnd Bergmann <arnd@arndb.de> Reference: https://lore.kernel.org/lkml/8232115.18ykgQ6J5T@wuerfel/ Cc: Arnd Bergmann <arnd@arndb.de> Cc: Nicolas Pitre <nico@linaro.org> Cc: Russell King <linux@arm.linux.org.uk> Cc: Ard Biesheuvel <ard.biesheuvel@linaro.org> Cc: Marc Zyngier <marc.zyngier@arm.com> Cc: linux-kernel@vger.kernel.org Cc: linux-arm-kernel@lists.infradead.org Signed-off-by: David Heidelberg <david@ixit.cz> --- arch/arm/boot/compressed/Makefile | 2 ++ 1 file changed, 2 insertions(+)