• Arnd Bergmann's avatar
    net: xgene: move xgene_cle_ptree_ewdn data off stack · dece303f
    Arnd Bergmann authored
    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: a809701f ("drivers: net: xgene: fix: RSS for non-TCP/UDP")
    Signed-off-by: default avatarArnd Bergmann <arnd@arndb.de>
    Signed-off-by: default avatarDavid S. Miller <davem@davemloft.net>
    dece303f
xgene_enet_cle.c 19.2 KB