Message ID | 20220429080740.1294797-1-yangyingliang@huawei.com (mailing list archive) |
---|---|
State | Accepted |
Delegated to: | Lorenzo Pieralisi |
Headers | show |
Series | PCI: qcom-ep: check return value after calling platform_get_resource_byname() | expand |
On Fri, Apr 29, 2022 at 04:07:40PM +0800, Yang Yingliang wrote: > 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@huawei.com> > --- > 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 > Reviewed-by: Andrew Halaney <ahalaney@redhat.com>
On Fri, 29 Apr 2022 16:07:40 +0800, Yang Yingliang wrote: > 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. > > Applied to pci/endpoint, thanks! [1/1] PCI: qcom-ep: check return value after calling platform_get_resource_byname() https://git.kernel.org/lpieralisi/pci/c/a6f7fbae8371 Thanks, Lorenzo
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) {
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@huawei.com> --- drivers/pci/controller/dwc/pcie-qcom-ep.c | 4 ++++ 1 file changed, 4 insertions(+)