diff mbox series

ARM: atags_to_fdt: don't warn about stack size

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

Commit Message

David Heidelberg Aug. 9, 2021, 3:10 p.m. UTC
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(+)

Comments

Russell King (Oracle) Aug. 9, 2021, 3:24 p.m. UTC | #1
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.
Nicolas Pitre Aug. 9, 2021, 3:25 p.m. UTC | #2
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
> 
>
Arnd Bergmann Aug. 9, 2021, 4:02 p.m. UTC | #3
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
David Heidelberg Aug. 9, 2021, 4:44 p.m. UTC | #4
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 mbox series

Patch

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)