[PATCH] PCI: qcom-ep: check return value after calling platform_get_resource_byname()

From: Yang Yingliang
Date: Fri Apr 29 2022 - 03:55:57 EST


If platform_get_resource_byname() fails, 'mmio_res' will be set to null pointer,
it will cause null-ptr-deref when it used in qcom_pcie_perst_deassert(), so we
need check the return value.

Fixes: f55fee56a631 ("PCI: qcom-ep: Add Qualcomm PCIe Endpoint controller driver")
Signed-off-by: Yang Yingliang <yangyingliang@xxxxxxxxxx>
---
drivers/pci/controller/dwc/pcie-qcom-ep.c | 4 ++++
1 file changed, 4 insertions(+)

diff --git a/drivers/pci/controller/dwc/pcie-qcom-ep.c b/drivers/pci/controller/dwc/pcie-qcom-ep.c
index 6ce8eddf3a37..becb0c2ff870 100644
--- a/drivers/pci/controller/dwc/pcie-qcom-ep.c
+++ b/drivers/pci/controller/dwc/pcie-qcom-ep.c
@@ -416,6 +416,10 @@ 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;
+ }

syscon = of_parse_phandle(dev->of_node, "qcom,perst-regs", 0);
if (!syscon) {
--
2.25.1