Re: [PATCH] wcn36xx: use dynamic allocation for large variables
From: Kalle Valo
Date: Wed Sep 04 2019 - 02:23:04 EST
Arnd Bergmann <arnd@xxxxxxxx> wrote:
> clang triggers a warning about oversized stack frames that gcc does not
> notice because of slightly different inlining decisions:
>
> ath/wcn36xx/smd.c:1409:5: error: stack frame size of 1040 bytes in function 'wcn36xx_smd_config_bss' [-Werror,-Wframe-larger-than=]
> ath/wcn36xx/smd.c:640:5: error: stack frame size of 1032 bytes in function 'wcn36xx_smd_start_hw_scan' [-Werror,-Wframe-larger-than=]
>
> Basically the wcn36xx_hal_start_scan_offload_req_msg,
> wcn36xx_hal_config_bss_req_msg_v1, and wcn36xx_hal_config_bss_req_msg
> structures are too large to be put on the kernel stack, but small
> enough that gcc does not warn about them.
>
> Use kzalloc() to allocate them all. There are similar structures in other
> parts of this driver, but they are all smaller, with the next largest
> stack frame at 480 bytes for wcn36xx_smd_send_beacon.
>
> Fixes: 8e84c2582169 ("wcn36xx: mac80211 driver for Qualcomm WCN3660/WCN3680 hardware")
> Signed-off-by: Arnd Bergmann <arnd@xxxxxxxx>
> Signed-off-by: Kalle Valo <kvalo@xxxxxxxxxxxxxx>
Patch applied to ath-next branch of ath.git, thanks.
355cf3191201 wcn36xx: use dynamic allocation for large variables
--
https://patchwork.kernel.org/patch/11052589/
https://wireless.wiki.kernel.org/en/developers/documentation/submittingpatches