pci: msm: Add a check for lpi_enable before msi config access

For LPI based interrupts, IRQ handler passes the IRQ directly
to the client. So, no need of pcie driver(pci-msm-msi.c) for LPI
based interrupts.

Add a check for lpi_enable before msi config access to MSI
register at the time of link enumeration as msi config access
is not applicable to LPIs. Without this check pcie driver is trying
to give msi->cfg_access for LPI interrupts also and acquires the
msi->cfg_lock before giving the msi->cfg_access. Kernel bark handler
detects long wait on msi->cfg_lock and triggers the crash.

Fixes: a4421ad177fb ("pci: msm: create a de-enumerate api").
Change-Id: Ice55eb5df9f52bab8b4a029ed55236ecf1766766
Signed-off-by: Paras Sharma <quic_parass@quicinc.com>
This commit is contained in:
Paras Sharma 2023-11-14 17:51:52 +05:30
parent c6b0356043
commit 8a2cd25643

View File

@ -6116,8 +6116,8 @@ int msm_pcie_enumerate(u32 rc_idx)
}
} else {
bridge = dev->bridge;
msm_msi_config_access(dev_get_msi_domain(&dev->dev->dev),
true);
if (!dev->lpi_enable)
msm_msi_config_access(dev_get_msi_domain(&dev->dev->dev), true);
}
bridge->sysdata = dev;