]> git.baikalelectronics.ru Git - kernel.git/commit
mlx4: avoid large stack usage in mlx4_init_hca()
authorArnd Bergmann <arnd@arndb.de>
Mon, 22 Jul 2019 15:01:55 +0000 (17:01 +0200)
committerDavid S. Miller <davem@davemloft.net>
Wed, 24 Jul 2019 22:46:49 +0000 (15:46 -0700)
commit727b4c2312608d2ff44a3753c5fe47a4da83eedb
tree51a25a43db74db381b58858e5044a837dcdd6d20
parenteb87e640c1a123692c2f0d94f90567aefff4fdf9
mlx4: avoid large stack usage in mlx4_init_hca()

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: Arnd Bergmann <arnd@arndb.de>
Reviewed-by: Saeed Mahameed <saeedm@mellanox.com>
Signed-off-by: David S. Miller <davem@davemloft.net>
drivers/net/ethernet/mellanox/mlx4/main.c