wil6210: ignore HALP ICR if already handled
authorMaya Erez <merez@codeaurora.org>
Fri, 22 Feb 2019 14:21:04 +0000 (16:21 +0200)
committerKalle Valo <kvalo@codeaurora.org>
Thu, 28 Feb 2019 09:24:59 +0000 (11:24 +0200)
commit979c9d8d01c482b1befb44dc639ecb907b5a37bd
treef178f48c23d8bec9a167259c96624fe8bff3b14e
parenta380eb5736c04942c158b22af04467eb21c27045
wil6210: ignore HALP ICR if already handled

HALP ICR is set as long as the FW should stay awake.
To prevent its multiple handling the driver masks this IRQ bit.
However, if there is a different MISC ICR before the driver clears
this bit, there is a risk of race condition between HALP mask and
unmask. This race leads to HALP timeout, in case it is mistakenly
masked.
Add an atomic flag to indicate if HALP ICR should be handled.

Signed-off-by: Maya Erez <merez@codeaurora.org>
Signed-off-by: Kalle Valo <kvalo@codeaurora.org>
drivers/net/wireless/ath/wil6210/interrupt.c
drivers/net/wireless/ath/wil6210/main.c
drivers/net/wireless/ath/wil6210/wil6210.h