• Arnd Bergmann's avatar
    mlx4: avoid large stack usage in mlx4_init_hca() · 9eed21c0
    Arnd Bergmann authored
    The mlx4_dev_cap and mlx4_init_hca_param are really too large
    to be put on the kernel stack, as shown by this clang warning:
    
    drivers/net/ethernet/mellanox/mlx4/main.c:3304:12: error: stack frame size of 1088 bytes in function 'mlx4_load_one' [-Werror,-Wframe-larger-than=]
    
    With gcc, the problem is the same, but it does not warn because
    it does not inline this function, and therefore stays just below
    the warning limit, while clang is just above it.
    
    Use kzalloc for dynamic allocation instead of putting them
    on stack. This gets the combined stack frame down to 424 bytes.
    Signed-off-by: default avatarArnd Bergmann <arnd@arndb.de>
    Reviewed-by: default avatarSaeed Mahameed <saeedm@mellanox.com>
    Signed-off-by: default avatarDavid S. Miller <davem@davemloft.net>
    9eed21c0
main.c 122 KB