linux-stable/drivers/pci/controller
qizhong cheng fd110f42e3 PCI: mediatek: Clear interrupt status before dispatching handler
[ Upstream commit 4e11c29873 ]

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: 43e6409db6 ("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>
Signed-off-by: Sasha Levin <sashal@kernel.org>
2024-02-23 08:12:38 +01:00
..
dwc PCI: keystone: Don't discard .probe() callback 2023-11-28 16:46:34 +00:00
Kconfig
Makefile
pci-aardvark.c PCI: aardvark: Fix reading MSI interrupt number 2022-05-12 12:20:26 +02:00
pci-ftpci100.c
pci-host-common.c
pci-host-generic.c
pci-hyperv.c PCI: hv: Fix a race condition bug in hv_pci_query_relations() 2023-06-28 10:15:28 +02:00
pci-mvebu.c
pci-rcar-gen2.c
pci-tegra.c
pci-thunder-ecam.c
pci-thunder-pem.c
pci-v3-semi.c
pci-versatile.c
pci-xgene-msi.c
pci-xgene.c
pcie-altera-msi.c
pcie-altera.c
pcie-cadence-ep.c PCI: cadence: Fix find_first_zero_bit() limit 2022-06-14 16:59:23 +02:00
pcie-cadence-host.c
pcie-cadence.c
pcie-cadence.h
pcie-iproc-bcma.c
pcie-iproc-msi.c
pcie-iproc-platform.c
pcie-iproc.c
pcie-iproc.h
pcie-mediatek.c PCI: mediatek: Clear interrupt status before dispatching handler 2024-02-23 08:12:38 +01:00
pcie-mobiveil.c
pcie-rcar.c
pcie-rockchip-ep.c PCI: rockchip: Use u32 variable to access 32-bit registers 2023-08-11 11:45:21 +02:00
pcie-rockchip-host.c
pcie-rockchip.c PCI: rockchip: Add poll and timeout to wait for PHY PLLs to be locked 2023-08-11 11:45:21 +02:00
pcie-rockchip.h PCI: rockchip: Use u32 variable to access 32-bit registers 2023-08-11 11:45:21 +02:00
pcie-tango.c
pcie-xilinx-nwl.c
pcie-xilinx.c
vmd.c