[PATCH] PCI: sky1: Fix missing cleanup of ECAM config on probe failure

From: Felix Gu

Date: Mon Mar 23 2026 - 13:13:21 EST


When devm_kzalloc() for reg_off fails, the code returns -ENOMEM
without freeing pcie->cfg, which was allocated earlier by
pci_ecam_create().

Add the missing pci_ecam_free() call to properly release the allocated
ECAM configuration window on this error path.

Fixes: a0d9f2c08f45 ("PCI: sky1: Add PCIe host support for CIX Sky1")
Signed-off-by: Felix Gu <ustc.gu@xxxxxxxxx>
---
drivers/pci/controller/cadence/pci-sky1.c | 4 +++-
1 file changed, 3 insertions(+), 1 deletion(-)

diff --git a/drivers/pci/controller/cadence/pci-sky1.c b/drivers/pci/controller/cadence/pci-sky1.c
index d8c216dc120d..9853a9c82c0e 100644
--- a/drivers/pci/controller/cadence/pci-sky1.c
+++ b/drivers/pci/controller/cadence/pci-sky1.c
@@ -176,8 +176,10 @@ static int sky1_pcie_probe(struct platform_device *pdev)
cdns_pcie->is_rc = 1;

reg_off = devm_kzalloc(dev, sizeof(*reg_off), GFP_KERNEL);
- if (!reg_off)
+ if (!reg_off) {
+ pci_ecam_free(pcie->cfg);
return -ENOMEM;
+ }

reg_off->ip_reg_bank_offset = SKY1_IP_REG_BANK;
reg_off->ip_cfg_ctrl_reg_offset = SKY1_IP_CFG_CTRL_REG_BANK;

---
base-commit: 785f0eb2f85decbe7c1ef9ae922931f0194ffc2e
change-id: 20260323-sky1-890a90a72bc6

Best regards,
--
Felix Gu <ustc.gu@xxxxxxxxx>