[PATCH v2 0/2] Small INTx fixes for Rockchip's dwc based PCIe controller driver
Shawn Lin
shawn.lin at rock-chips.com
Thu Sep 3 18:18:27 PDT 2026
This short series fixes the INTx handling around the newly introduced
.reset_root_port() (b376b3ff9cb0):
Patch 1 stops .reset_root_port() from recreating the INTx irq domain
on every root port reset, which leaked the old domain and silently
broke INTx delivery afterwards, by moving the of_irq_get_byname()
lookup, the INTx irq domain creation and the chained handler
installation into rockchip_pcie_configure_rc(), right after
dw_pcie_host_init(), per Niklas' suggestion. The irq domain is made
devm-managed and the chained handler is uninstalled through a devres
action, which also addresses the probe failure leak/use-after-free
flagged by the Sashiko review.
Patch 2 keeps the INTx IRQ masked while .reset_root_port() gates the
controller clocks, so the chained handler cannot read the unclocked
APB bus and raise a synchronous external abort.
This series supersedes the v1 series:
https://lore.kernel.org/linux-pci/1788403477-71491-1-git-send-email-shawn.lin@rock-chips.com/
Changes in v2:
- Moved the of_irq_get_byname() lookup, the INTx irq domain creation
and the chained handler installation out of the host ops .init()
callback into rockchip_pcie_configure_rc(), right after
dw_pcie_host_init(), as suggested by Niklas Cassel. This supersedes
v1 patch 1/2, as .init() no longer creates the irq domain, and
removes the rockchip_pcie_host_hw_init() helper from v1.
- Made the INTx irq domain devm-managed with
devm_irq_domain_instantiate() and uninstall the chained handler
through a devres action, addressing the probe failure leak and
use-after-free flagged by the Sashiko review.
- keep the INTx IRQ masked while .reset_root_port()
gates the controller clocks, responding to the Sashiko review
finding about accessing the unclocked APB bus.
Shawn Lin (2):
PCI: dw-rockchip: Move the INTx irq setup to probe and make it
devm-managed
PCI: dw-rockchip: Mask the INTx IRQ while the controller clocks are
gated
drivers/pci/controller/dwc/pcie-dw-rockchip.c | 77 ++++++++++++++++++++-------
1 file changed, 57 insertions(+), 20 deletions(-)
--
2.7.4
More information about the Linux-rockchip
mailing list