Re: fs/buffer.c:2342:1: warning: the frame size of 2056 bytes is larger than 1024 bytes

From: Al Viro
Date: Sat Oct 02 2021 - 21:29:55 EST


On Sun, Oct 03, 2021 at 08:48:34AM +0800, kernel test robot wrote:
> Hi Christophe,

> # save the attached .config to linux build tree

> fs/buffer.c: In function 'block_read_full_page':
> >> fs/buffer.c:2342:1: warning: the frame size of 2056 bytes is larger than 1024 bytes [-Wframe-larger-than=]

fs/buffer.c:2259: struct buffer_head *bh, *head, *arr[MAX_BUF_PER_PAGE];

Now,
include/linux/buffer_head.h:44:#define MAX_BUF_PER_PAGE (PAGE_SIZE / 512)

so 'arr' in the above is PAGE_SIZE/512 pointers. From the attached .config,
CONFIG_32BIT=y
and
# CONFIG_PPC_4K_PAGES is not set
# CONFIG_PPC_16K_PAGES is not set
# CONFIG_PPC_64K_PAGES is not set
CONFIG_PPC_256K_PAGES=y
CONFIG_PPC_PAGE_SHIFT=18

IOW, we have 256K/512 pointers, 4 bytes each, which amounts to 2K. Just in
that array.

The rest of affected functions have similar local arrays...