Bryan O'Donoghue <bryan.odonoghue@xxxxxxxxxx> wrote: > We are looking at some interesting crashes with wcn36xx in the wild, with > some of the data appearing to indicate multiple instances of "WARNING > Spurious TX complete indication". > > Looking at the code here we see that txrx.c is taking the dxe.c lock to set > and unset the current TX skbuff pointer. > > There is no obvious logical bug however, it is a layering violation to > share locks like this. > > Lets tidy up the code a bit by making access functions to set and unset the > TX sbuff. This makes it easier to reason about this code without having to > switch between multiple files. > > Fixes: 8e84c2582169 ("wcn36xx: mac80211 driver for Qualcomm WCN3660/WCN3680 hardware") > Signed-off-by: Bryan O'Donoghue <bryan.odonoghue@xxxxxxxxxx> Failed to apply, please rebase on top of ath.git master branch. But please wait few days as there are quite a few wcn36xx patches pending. error: patch failed: drivers/net/wireless/ath/wcn36xx/dxe.c:878 error: drivers/net/wireless/ath/wcn36xx/dxe.c: patch does not apply error: patch failed: drivers/net/wireless/ath/wcn36xx/dxe.h:468 error: drivers/net/wireless/ath/wcn36xx/dxe.h: patch does not apply error: patch failed: drivers/net/wireless/ath/wcn36xx/txrx.c:584 error: drivers/net/wireless/ath/wcn36xx/txrx.c: patch does not apply stg import: Diff does not apply cleanly 5 patches set to Changes Requested. 12568271 [v2,1/5] wcn36xx: Fix dxe lock layering violation 12568273 [v2,2/5] wcn36xx: Fix DMA channel enable/disable cycle 12568275 [v2,3/5] wcn36xx: Release DMA channel descriptor allocations 12568277 [v2,4/5] wcn36xx: Functionally decompose DXE reset 12568279 [v2,5/5] wcn36xx: Put DXE block into reset before freeing memory -- https://patchwork.kernel.org/project/linux-wireless/patch/20211018231722.873525-2-bryan.odonoghue@xxxxxxxxxx/ https://wireless.wiki.kernel.org/en/developers/documentation/submittingpatches