]> git.ipfire.org Git - thirdparty/kernel/stable.git/commitdiff
PCI: sky1: Fix missing cleanup of ECAM config on probe failure
authorFelix Gu <ustc.gu@gmail.com>
Mon, 23 Mar 2026 16:41:28 +0000 (00:41 +0800)
committerManivannan Sadhasivam <mani@kernel.org>
Tue, 24 Mar 2026 07:18:54 +0000 (12:48 +0530)
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@gmail.com>
Signed-off-by: Manivannan Sadhasivam <mani@kernel.org>
Reviewed-by: Hans Zhang <18255117159@163.com>
Link: https://patch.msgid.link/20260324-sky1-v1-1-6a00cb2776b6@gmail.com
drivers/pci/controller/cadence/pci-sky1.c

index d8c216dc120d6f2c1e418f42c4fc9db0b047e9fd..9853a9c82c0e67a44b7278d822f5ab276ba4bba2 100644 (file)
@@ -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;