Jeff Johnson <quic_jjohnson@xxxxxxxxxxx> writes: > When compiling the ath11k driver using clang with KASAN enabled, the > following warning is observed: > > drivers/net/wireless/ath/ath11k/dp_rx.c:5244:5: warning: stack frame size (1304) exceeds limit (1024) in 'ath11k_dp_rx_process_mon_status' [-Wframe-larger-than] > > This is similar to the issue found in ath12k/qmi.c that was discussed > in [1] and fixed with [2]. The issue is that clang inlining can > explode stack usage. > > ath11k_dp_rx_process_mon_status() itself is a pretty > lightweight function, but it dispatches to several other functions > which do the real work: > > ath11k_dp_rx_process_mon_status() > ath11k_dp_rx_reap_mon_status_ring() > ath11k_dp_rx_mon_dest_process() > ath11k_dp_rx_mon_mpdu_pop() * > ath11k_dp_rx_mon_deliver() > ath11k_dp_rx_mon_merg_msdus() > ath11k_dp_rx_deliver_msdu() > ath11k_dp_rx_update_peer_stats() > > Of these, only ath11k_dp_rx_mon_mpdu_pop() has non-trivial stack > usage, so mark that function as 'noinline_for_stack' to prevent it > from being inlined in ath11k_dp_rx_process_mon_status(), thereby > eliminating the excessive stack usage. > > Link: https://msgid.link/bc214795-1c51-4cb7-922f-67d6ef98bff2@xxxxxxxxxxx # [1] > Link: https://patch.msgid.link/20241028-ath12k_qmi_driver_event_work-v1-1-0d532eb593fa@xxxxxxxxxxx # [2] > Signed-off-by: Jeff Johnson <quic_jjohnson@xxxxxxxxxxx> Acked-by: Kalle Valo <kvalo@xxxxxxxxxx> -- https://patchwork.kernel.org/project/linux-wireless/list/ https://wireless.wiki.kernel.org/en/developers/documentation/submittingpatches