]> git.ipfire.org Git - thirdparty/kernel/stable.git/commit
wil6210: fix spurious interrupts in 3-msi
authorMaya Erez <merez@codeaurora.org>
Fri, 26 Apr 2019 15:43:29 +0000 (18:43 +0300)
committerGreg Kroah-Hartman <gregkh@linuxfoundation.org>
Fri, 26 Jul 2019 07:12:23 +0000 (09:12 +0200)
commit2da6d47c24b63b57abe99f97e38f6a34b1b5cc73
tree8eeed186c4be4d2111e421891442410a98abf0d2
parentffb9277b00bf91677eade49c021e9e8d9d67ab87
wil6210: fix spurious interrupts in 3-msi

[ Upstream commit e10b0eddd5235aa5aef4e40b970e34e735611a80 ]

Interrupt is set in ICM (ICR & ~IMV) rising trigger.
As the driver masks the IRQ after clearing it, there can
be a race where an additional spurious interrupt is triggered
when the driver unmask the IRQ.
This can happen in case HW triggers an interrupt after the clear
and before the mask.

To prevent the second spurious interrupt the driver needs to mask the
IRQ before reading and clearing it.

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