mtdchar: mark bits of ioctl handler noinline
authorArnd Bergmann <arnd@arndb.de>
Mon, 17 Apr 2023 20:56:50 +0000 (22:56 +0200)
committerMiquel Raynal <miquel.raynal@bootlin.com>
Thu, 1 Jun 2023 16:12:31 +0000 (18:12 +0200)
commit0ea923f443350c8c5cca6eef5b748d52b903f46c
tree7b2c507fd40ef8e6709d6be04325afdb47c678c7
parent444c17cfbc855bf6c1524f3813f6f667d9b708ff
mtdchar: mark bits of ioctl handler noinline

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")
Cc: stable@vger.kernel.org
Signed-off-by: Arnd Bergmann <arnd@arndb.de>
Reviewed-by: Richard Weinberger <richard@nod.at>
Signed-off-by: Miquel Raynal <miquel.raynal@bootlin.com>
Link: https://lore.kernel.org/linux-mtd/20230417205654.1982368-1-arnd@kernel.org
drivers/mtd/mtdchar.c