From: Miquel Raynal <miquel.raynal@bootlin.com>
To: Arnd Bergmann <arnd@kernel.org>
Cc: "Richard Weinberger" <richard@nod.at>,
"Vignesh Raghavendra" <vigneshr@ti.com>,
"Michał Kępień" <kernel@kempniu.pl>,
"Arnd Bergmann" <arnd@arndb.de>,
linux-mtd@lists.infradead.org, linux-kernel@vger.kernel.org
Subject: Re: [PATCH] mtdchar: mark bits of ioctl handler noinline
Date: Mon, 22 May 2023 17:46:35 +0200 [thread overview]
Message-ID: <20230522174635.7acfb42c@xps-13> (raw)
In-Reply-To: <20230417205654.1982368-1-arnd@kernel.org>
Hi Arnd,
arnd@kernel.org wrote on Mon, 17 Apr 2023 22:56:50 +0200:
> From: Arnd Bergmann <arnd@arndb.de>
>
> The addition of the mtdchar_read_ioctl() function caused the stack usage
> of mtdchar_ioctl() to grow beyond the warning limit on 32-bit architectures
> with gcc-13:
>
> drivers/mtd/mtdchar.c: In function 'mtdchar_ioctl':
> drivers/mtd/mtdchar.c:1229:1: error: the frame size of 1488 bytes is larger than 1024 bytes [-Werror=frame-larger-than=]
>
> Mark both the read and write portions as noinline_for_stack to ensure
> they don't get inlined and use separate stack slots to reduce the
> maximum usage, both in the mtdchar_ioctl() and combined with any
> of its callees.
>
> Fixes: 095bb6e44eb1 ("mtdchar: add MEMREAD ioctl")
> Signed-off-by: Arnd Bergmann <arnd@arndb.de>
I am about to take this as part of my next fixes PR, should we Cc:
stable? What is the current policy wrt gcc version issues?
> ---
> drivers/mtd/mtdchar.c | 8 ++++----
> 1 file changed, 4 insertions(+), 4 deletions(-)
>
> diff --git a/drivers/mtd/mtdchar.c b/drivers/mtd/mtdchar.c
> index 01f1c6792df9..8dc4f5c493fc 100644
> --- a/drivers/mtd/mtdchar.c
> +++ b/drivers/mtd/mtdchar.c
> @@ -590,8 +590,8 @@ static void adjust_oob_length(struct mtd_info *mtd, uint64_t start,
> (end_page - start_page + 1) * oob_per_page);
> }
>
> -static int mtdchar_write_ioctl(struct mtd_info *mtd,
> - struct mtd_write_req __user *argp)
> +static noinline_for_stack int
> +mtdchar_write_ioctl(struct mtd_info *mtd, struct mtd_write_req __user *argp)
> {
> struct mtd_info *master = mtd_get_master(mtd);
> struct mtd_write_req req;
> @@ -688,8 +688,8 @@ static int mtdchar_write_ioctl(struct mtd_info *mtd,
> return ret;
> }
>
> -static int mtdchar_read_ioctl(struct mtd_info *mtd,
> - struct mtd_read_req __user *argp)
> +static noinline_for_stack int
> +mtdchar_read_ioctl(struct mtd_info *mtd, struct mtd_read_req __user *argp)
> {
> struct mtd_info *master = mtd_get_master(mtd);
> struct mtd_read_req req;
Thanks,
Miquèl
______________________________________________________
Linux MTD discussion mailing list
http://lists.infradead.org/mailman/listinfo/linux-mtd/
WARNING: multiple messages have this Message-ID (diff)
From: Miquel Raynal <miquel.raynal@bootlin.com>
To: Arnd Bergmann <arnd@kernel.org>
Cc: "Richard Weinberger" <richard@nod.at>,
"Vignesh Raghavendra" <vigneshr@ti.com>,
"Michał Kępień" <kernel@kempniu.pl>,
"Arnd Bergmann" <arnd@arndb.de>,
linux-mtd@lists.infradead.org, linux-kernel@vger.kernel.org
Subject: Re: [PATCH] mtdchar: mark bits of ioctl handler noinline
Date: Mon, 22 May 2023 17:46:35 +0200 [thread overview]
Message-ID: <20230522174635.7acfb42c@xps-13> (raw)
In-Reply-To: <20230417205654.1982368-1-arnd@kernel.org>
Hi Arnd,
arnd@kernel.org wrote on Mon, 17 Apr 2023 22:56:50 +0200:
> From: Arnd Bergmann <arnd@arndb.de>
>
> The addition of the mtdchar_read_ioctl() function caused the stack usage
> of mtdchar_ioctl() to grow beyond the warning limit on 32-bit architectures
> with gcc-13:
>
> drivers/mtd/mtdchar.c: In function 'mtdchar_ioctl':
> drivers/mtd/mtdchar.c:1229:1: error: the frame size of 1488 bytes is larger than 1024 bytes [-Werror=frame-larger-than=]
>
> Mark both the read and write portions as noinline_for_stack to ensure
> they don't get inlined and use separate stack slots to reduce the
> maximum usage, both in the mtdchar_ioctl() and combined with any
> of its callees.
>
> Fixes: 095bb6e44eb1 ("mtdchar: add MEMREAD ioctl")
> Signed-off-by: Arnd Bergmann <arnd@arndb.de>
I am about to take this as part of my next fixes PR, should we Cc:
stable? What is the current policy wrt gcc version issues?
> ---
> drivers/mtd/mtdchar.c | 8 ++++----
> 1 file changed, 4 insertions(+), 4 deletions(-)
>
> diff --git a/drivers/mtd/mtdchar.c b/drivers/mtd/mtdchar.c
> index 01f1c6792df9..8dc4f5c493fc 100644
> --- a/drivers/mtd/mtdchar.c
> +++ b/drivers/mtd/mtdchar.c
> @@ -590,8 +590,8 @@ static void adjust_oob_length(struct mtd_info *mtd, uint64_t start,
> (end_page - start_page + 1) * oob_per_page);
> }
>
> -static int mtdchar_write_ioctl(struct mtd_info *mtd,
> - struct mtd_write_req __user *argp)
> +static noinline_for_stack int
> +mtdchar_write_ioctl(struct mtd_info *mtd, struct mtd_write_req __user *argp)
> {
> struct mtd_info *master = mtd_get_master(mtd);
> struct mtd_write_req req;
> @@ -688,8 +688,8 @@ static int mtdchar_write_ioctl(struct mtd_info *mtd,
> return ret;
> }
>
> -static int mtdchar_read_ioctl(struct mtd_info *mtd,
> - struct mtd_read_req __user *argp)
> +static noinline_for_stack int
> +mtdchar_read_ioctl(struct mtd_info *mtd, struct mtd_read_req __user *argp)
> {
> struct mtd_info *master = mtd_get_master(mtd);
> struct mtd_read_req req;
Thanks,
Miquèl
next prev parent reply other threads:[~2023-05-22 15:46 UTC|newest]
Thread overview: 10+ messages / expand[flat|nested] mbox.gz Atom feed top
2023-04-17 20:56 [PATCH] mtdchar: mark bits of ioctl handler noinline Arnd Bergmann
2023-04-17 20:56 ` Arnd Bergmann
2023-04-17 21:20 ` Richard Weinberger
2023-04-17 21:20 ` Richard Weinberger
2023-05-22 15:46 ` Miquel Raynal [this message]
2023-05-22 15:46 ` Miquel Raynal
2023-05-23 12:14 ` Arnd Bergmann
2023-05-23 12:14 ` Arnd Bergmann
2023-05-23 13:43 ` Miquel Raynal
2023-05-23 13:43 ` Miquel Raynal
Reply instructions:
You may reply publicly to this message via plain-text email
using any one of the following methods:
* Save the following mbox file, import it into your mail client,
and reply-to-all from there: mbox
Avoid top-posting and favor interleaved quoting:
https://en.wikipedia.org/wiki/Posting_style#Interleaved_style
* Reply using the --to, --cc, and --in-reply-to
switches of git-send-email(1):
git send-email \
--in-reply-to=20230522174635.7acfb42c@xps-13 \
--to=miquel.raynal@bootlin.com \
--cc=arnd@arndb.de \
--cc=arnd@kernel.org \
--cc=kernel@kempniu.pl \
--cc=linux-kernel@vger.kernel.org \
--cc=linux-mtd@lists.infradead.org \
--cc=richard@nod.at \
--cc=vigneshr@ti.com \
/path/to/YOUR_REPLY
https://kernel.org/pub/software/scm/git/docs/git-send-email.html
* If your mail client supports setting the In-Reply-To header
via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line
before the message body.
This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.