Re: [PATCH net-next 2/3] net: xgene: move xgene_cle_ptree_ewdn data off stack

From: David Miller
Date: Thu Dec 08 2016 - 21:31:22 EST

From: Arnd Bergmann <arnd@xxxxxxxx>
Date: Thu, 8 Dec 2016 22:57:04 +0100

> The array for initializing the cle is set up on the stack with
> almost entirely constant data and then passed to a function that
> converts it into HW specific bit patterns. With the latest
> addition, the size of this array has grown to the point that
> we get a warning about potential stack overflow in allmodconfig
> builds:
> xgene_enet_cle.c: In function ʽxgene_enet_cle_initʼ:
> xgene_enet_cle.c:836:1: error: the frame size of 1032 bytes is larger than 1024 bytes [-Werror=frame-larger-than=]
> Looking a bit deeper at the usage, I noticed that the only modification
> of the data is in dead code, as we don't even use the cle module
> for phy_mode other than PHY_INTERFACE_MODE_XGMII. This means we
> can simply mark the structure constant and access it directly rather
> than passing the pointer down through another structure, making
> the code more efficient at the same time as avoiding the
> warning.
> Fixes: a809701fed15 ("drivers: net: xgene: fix: RSS for non-TCP/UDP")
> Signed-off-by: Arnd Bergmann <arnd@xxxxxxxx>