airo: work around stack usage warning
authorArnd Bergmann <arnd@arndb.de>
Tue, 23 Mar 2021 13:16:28 +0000 (14:16 +0100)
committerKalle Valo <kvalo@codeaurora.org>
Sat, 17 Apr 2021 18:02:28 +0000 (21:02 +0300)
commit7909a590eba6d021f104958857cbc4f0089daceb
treeae94aa8177914dcac75ed23c36bbec347f46a8ed
parent7b0e2c4f6be3ec68bf807c84e985e81c21404cd1
airo: work around stack usage warning

gcc-11 with KASAN on 32-bit arm produces a warning about a function
that needs a lot of stack space:

drivers/net/wireless/cisco/airo.c: In function 'setup_card.constprop':
drivers/net/wireless/cisco/airo.c:3960:1: error: the frame size of 1512 bytes is larger than 1400 bytes [-Werror=frame-larger-than=]

Most of this is from a single large structure that could be dynamically
allocated or moved into the per-device structure.  However, as the callers
all seem to have a fairly well bounded call chain, the easiest change
is to pull out the part of the function that needs the large variables
into a separate function and mark that as noinline_for_stack. This does
not reduce the total stack usage, but it gets rid of the warning and
requires minimal changes otherwise.

Signed-off-by: Arnd Bergmann <arnd@arndb.de>
Signed-off-by: Kalle Valo <kvalo@codeaurora.org>
Link: https://lore.kernel.org/r/20210323131634.2669455-1-arnd@kernel.org
drivers/net/wireless/cisco/airo.c