PCI: qcom-ep: Check platform_get_resource_byname() return value
authorYang Yingliang <yangyingliang@huawei.com>
Fri, 29 Apr 2022 08:07:40 +0000 (16:07 +0800)
committerBjorn Helgaas <bhelgaas@google.com>
Wed, 5 Oct 2022 22:30:55 +0000 (17:30 -0500)
If platform_get_resource_byname() fails, 'mmio_res' will be set to NULL
pointer, which causes a NULL pointer dereference when it is used in
qcom_pcie_perst_deassert().

Check the return value to prevent it.

Link: https://lore.kernel.org/r/20220429080740.1294797-1-yangyingliang@huawei.com
Fixes: f55fee56a631 ("PCI: qcom-ep: Add Qualcomm PCIe Endpoint controller driver")
Signed-off-by: Yang Yingliang <yangyingliang@huawei.com>
Signed-off-by: Lorenzo Pieralisi <lpieralisi@kernel.org>
Signed-off-by: Bjorn Helgaas <bhelgaas@google.com>
Reviewed-by: Andrew Halaney <ahalaney@redhat.com>
drivers/pci/controller/dwc/pcie-qcom-ep.c

index 464e5ca..6d0d1b7 100644 (file)
@@ -474,6 +474,11 @@ static int qcom_pcie_ep_get_io_resources(struct platform_device *pdev,
 
        pcie_ep->mmio_res = platform_get_resource_byname(pdev, IORESOURCE_MEM,
                                                         "mmio");
+       if (!pcie_ep->mmio_res) {
+               dev_err(dev, "Failed to get mmio resource\n");
+               return -EINVAL;
+       }
+
        pcie_ep->mmio = devm_pci_remap_cfg_resource(dev, pcie_ep->mmio_res);
        if (IS_ERR(pcie_ep->mmio))
                return PTR_ERR(pcie_ep->mmio);