wifi: brcmfmac: fix scheduling while atomic issue when deleting flowring
authorWright Feng <wright.feng@cypress.com>
Fri, 22 Jul 2022 11:56:27 +0000 (13:56 +0200)
committerKalle Valo <kvalo@kernel.org>
Wed, 10 Aug 2022 05:47:22 +0000 (08:47 +0300)
commit09be7546a602ea2d0959fc13515765221da248f2
tree0483342ac70e5d31d1c02ab9b20ab85044742068
parent0fa24196e4257bcad0c5c82d93508536426db4a2
wifi: brcmfmac: fix scheduling while atomic issue when deleting flowring

We should not sleep while holding the spin lock. It makes
'scheduling while atomic' in brcmf_msgbuf_delete_flowring.
And to avoid race condition between deleting flowring and txflow,
we only hold spin lock when seting flowring status to RING_CLOSING.

Signed-off-by: Wright Feng <wright.feng@cypress.com>
Signed-off-by: Chi-Hsien Lin <chi-hsien.lin@cypress.com>
Signed-off-by: Ahmad Fatoum <a.fatoum@pengutronix.de>
Signed-off-by: Alvin Šipraga <alsi@bang-olufsen.dk>
Signed-off-by: Kalle Valo <kvalo@kernel.org>
Link: https://lore.kernel.org/r/20220722115632.620681-3-alvin@pqrs.dk
drivers/net/wireless/broadcom/brcm80211/brcmfmac/flowring.c
drivers/net/wireless/broadcom/brcm80211/brcmfmac/msgbuf.c