wil6210: prevent external wmi commands during suspend flow
authorMaya Erez <qca_merez@qca.qualcomm.com>
Tue, 24 Nov 2015 07:30:15 +0000 (09:30 +0200)
committerKalle Valo <kvalo@qca.qualcomm.com>
Tue, 8 Dec 2015 14:50:28 +0000 (16:50 +0200)
commit452133a717dd13b57a99defb791d25c568483f6b
tree0673eec47ef6a8262ff383149e94dd5a2f14c237
parent410d13a6b057f69c58b8bf8ccca8e9cbf57ea710
wil6210: prevent external wmi commands during suspend flow

In __wmi_send we check if fw is ready at the beginning of the function.
While we wait for the completion of the previous command, system suspend
can be invoked and reset the HW, causing __wmi_send to read from HW
registers while it is not ready.
Taking the wmi_mutex in the reset flow when setting the FW ready bit
to zero will prevent the above race condition.

Signed-off-by: Maya Erez <qca_merez@qca.qualcomm.com>
Signed-off-by: Kalle Valo <kvalo@qca.qualcomm.com>
drivers/net/wireless/ath/wil6210/main.c
drivers/net/wireless/ath/wil6210/wmi.c