Re: [PATCH v2 0/5] PCI: dwc: improve msi handling

From: Vidya Sagar
Date: Thu Oct 08 2020 - 01:33:26 EST




On 10/6/2020 12:06 PM, Jisheng Zhang wrote:
External email: Use caution opening links or attachments


On Tue, 6 Oct 2020 11:56:34 +0530 Vidya Sagar wrote:



Hi,

Hi,

I would like to verify this series along with the other series "PCI:
dwc: fix two MSI issues" on Tegra194. I tried to apply these series on
both linux-next and Lorenzo's pci/dwc branches but there seem to be non
trivial conflicts. Could you please tell me which branch I can use and
apply these series cleanly?

This is a fix, so I thought the series would be picked up in v5.9, so the
series is patched against v5.9-rcN

could you please try v5 https://lkml.org/lkml/2020/9/29/2511 on v5.9-rc7?
I tried this series on top of v5.9-rc7 and it worked as expected on Tegra194 platform. Also, I couldn't cleanly apply the other series 'PCI: dwc: fix two MSI issues' on top. Could you please rebase them?

Thanks,
Vidya Sagar


Thanks

FWIW, I acknowledge that the existing code does leak MSI target page
every time system goes through suspend-resume sequence on Tegra194.

Thanks,
Vidya Sagar

On 9/24/2020 4:35 PM, Jisheng Zhang wrote:
External email: Use caution opening links or attachments


Improve the msi code:
1. Add proper error handling.
2. Move dw_pcie_msi_init() from each users to designware host to solve
msi page leakage in resume path.

Since v1:
- add proper error handling patches.
- solve the msi page leakage by moving dw_pcie_msi_init() from each
users to designware host


Jisheng Zhang (5):
PCI: dwc: Call dma_unmap_page() before freeing the msi page
PCI: dwc: Check alloc_page() return value
PCI: dwc: Rename dw_pcie_free_msi to dw_pcie_msi_deinit
PCI: dwc: Skip PCIE_MSI_INTR0* programming if MSI is disabled
PCI: dwc: Move dw_pcie_msi_init() from each users to designware host

drivers/pci/controller/dwc/pci-dra7xx.c | 1 +
drivers/pci/controller/dwc/pci-exynos.c | 2 -
drivers/pci/controller/dwc/pci-imx6.c | 3 --
drivers/pci/controller/dwc/pci-meson.c | 8 ----
drivers/pci/controller/dwc/pcie-artpec6.c | 10 -----
.../pci/controller/dwc/pcie-designware-host.c | 43 +++++++++++++------
.../pci/controller/dwc/pcie-designware-plat.c | 3 --
drivers/pci/controller/dwc/pcie-designware.h | 9 +++-
drivers/pci/controller/dwc/pcie-histb.c | 3 --
drivers/pci/controller/dwc/pcie-kirin.c | 3 --
drivers/pci/controller/dwc/pcie-qcom.c | 3 --
drivers/pci/controller/dwc/pcie-spear13xx.c | 1 -
drivers/pci/controller/dwc/pcie-tegra194.c | 2 -
drivers/pci/controller/dwc/pcie-uniphier.c | 9 +---
14 files changed, 38 insertions(+), 62 deletions(-)

--
2.28.0