PCI: mediatek: Clear interrupt status before dispatching handler
authorqizhong cheng <qizhong.cheng@mediatek.com>
Mon, 11 Dec 2023 09:49:23 +0000 (17:49 +0800)
committerBjorn Helgaas <bhelgaas@google.com>
Tue, 9 Jan 2024 22:41:23 +0000 (16:41 -0600)
commit4e11c29873a8a296a20f99b3e03095e65ebf897d
treef23661404feacf15bb12bf1656d867cb30e4d898
parentb85ea95d086471afb4ad062012a4d73cd328fa86
PCI: mediatek: Clear interrupt status before dispatching handler

We found a failure when using the iperf tool during WiFi performance
testing, where some MSIs were received while clearing the interrupt
status, and these MSIs cannot be serviced.

The interrupt status can be cleared even if the MSI status remains pending.
As such, given the edge-triggered interrupt type, its status should be
cleared before being dispatched to the handler of the underling device.

[kwilczynski: commit log, code comment wording]
Link: https://lore.kernel.org/linux-pci/20231211094923.31967-1-jianjun.wang@mediatek.com
Fixes: 43e6409db64d ("PCI: mediatek: Add MSI support for MT2712 and MT7622")
Signed-off-by: qizhong cheng <qizhong.cheng@mediatek.com>
Signed-off-by: Jianjun Wang <jianjun.wang@mediatek.com>
Signed-off-by: Krzysztof WilczyƄski <kwilczynski@kernel.org>
[bhelgaas: rewrap comment]
Signed-off-by: Bjorn Helgaas <bhelgaas@google.com>
Reviewed-by: AngeloGioacchino Del Regno <angelogioacchino.delregno@collabora.com>
Cc: <stable@vger.kernel.org>
drivers/pci/controller/pcie-mediatek.c