wcn36xx: Fix firmware crash due to corrupted buffer address
Kalle Valo
kvalo at codeaurora.org
Thu Mar 29 01:57:50 PDT 2018
Ramon Fried <rfried at codeaurora.org> wrote:
> wcn36xx_start_tx function retrieves the buffer descriptor from the
> channel control queue to start filling tx buffer information. However,
> nothing prevents this same buffer to be concurrently accessed in a
> concurent tx call, leading to potential buffer coruption and firmware
> crash (observed during iperf test). The channel control queue should
> only be accessed and updated with the channel lock.
>
> Fix this issue by using a local buffer descriptor which will be copied
> in the thread-safe wcn36xx_dxe_tx_frame.
>
> Note that buffer descriptor size is few bytes so the introduced copy
> overhead is insignificant. Moreover, this allows to keep the locked
> section minimal.
>
> Signed-off-by: Loic Poulain <loic.poulain at linaro.org>
> Signed-off-by: Ramon Fried <rfried at codeaurora.org>
> Signed-off-by: Kalle Valo <kvalo at codeaurora.org>
Patch applied to ath-next branch of ath.git, thanks.
e5f9908155c9 wcn36xx: Fix firmware crash due to corrupted buffer address
--
https://patchwork.kernel.org/patch/10284261/
https://wireless.wiki.kernel.org/en/developers/documentation/submittingpatches
More information about the wcn36xx
mailing list