Re: [PATCH net-next] [net-next] mlx4: avoid large stack usage in mlx4_init_hca()

From: David Miller
Date: Wed Jul 24 2019 - 18:47:08 EST

From: Arnd Bergmann <arnd@xxxxxxxx>
Date: Mon, 22 Jul 2019 17:01:55 +0200

> 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@xxxxxxxx>