PCI: dwc: pci-dra7xx: Use devm_platform_ioremap_resource_byname()
authorWei Yongjun <weiyongjun1@huawei.com>
Wed, 29 Apr 2020 01:50:27 +0000 (01:50 +0000)
committerLorenzo Pieralisi <lorenzo.pieralisi@arm.com>
Fri, 22 May 2020 14:05:23 +0000 (15:05 +0100)
platform_get_resource() may fail and return NULL, so we had better
check its return value to avoid a NULL pointer dereference a bit later
in the code. Fix it to use devm_platform_ioremap_resource_byname()
instead of calling platform_get_resource_byname() and devm_ioremap().

Link: https://lore.kernel.org/r/20200429015027.134485-1-weiyongjun1@huawei.com
Signed-off-by: Wei Yongjun <weiyongjun1@huawei.com>
[lorenzo.pieralisi@arm.com: commit log]
Signed-off-by: Lorenzo Pieralisi <lorenzo.pieralisi@arm.com>
drivers/pci/controller/dwc/pci-dra7xx.c

index 3b0e58f..6184ebc 100644 (file)
@@ -840,7 +840,6 @@ static int __init dra7xx_pcie_probe(struct platform_device *pdev)
        struct phy **phy;
        struct device_link **link;
        void __iomem *base;
-       struct resource *res;
        struct dw_pcie *pci;
        struct dra7xx_pcie *dra7xx;
        struct device *dev = &pdev->dev;
@@ -877,10 +876,9 @@ static int __init dra7xx_pcie_probe(struct platform_device *pdev)
                return irq;
        }
 
-       res = platform_get_resource_byname(pdev, IORESOURCE_MEM, "ti_conf");
-       base = devm_ioremap(dev, res->start, resource_size(res));
-       if (!base)
-               return -ENOMEM;
+       base = devm_platform_ioremap_resource_byname(pdev, "ti_conf");
+       if (IS_ERR(base))
+               return PTR_ERR(base);
 
        phy_count = of_property_count_strings(np, "phy-names");
        if (phy_count < 0) {