[for-4.14.y,1/5] PCI: exynos: Fix a potential init_clk_resources NULL pointer dereference

Message ID 1531814914-19191-2-git-send-email-amit.pundir@linaro.org
State New
Headers show
  • Stable commits picked up from lede project
Related show

Commit Message

Amit Pundir July 17, 2018, 8:08 a.m.
From: Jaehoon Chung <jh80.chung@samsung.com>

commit b5d6bc90c9129279d363ccbc02ad11e7b657c0b4 upstream.

In order to avoid triggering a NULL pointer dereference in
exynos_pcie_probe() a check must be put in place to detect if
the init_clk_resources hook is initialized before calling it.

Add the respective function pointer check in exynos_pcie_probe().

Signed-off-by: Jaehoon Chung <jh80.chung@samsung.com>

[lorenzo.pieralisi@arm.com: rewrote the commit log]
Signed-off-by: Lorenzo Pieralisi <lorenzo.pieralisi@arm.com>

Signed-off-by: Amit Pundir <amit.pundir@linaro.org>

Cherry-picked from lede tree https://git.lede-project.org/?p=source.git

 drivers/pci/dwc/pci-exynos.c | 3 ++-
 1 file changed, 2 insertions(+), 1 deletion(-)



diff --git a/drivers/pci/dwc/pci-exynos.c b/drivers/pci/dwc/pci-exynos.c
index 5596fdedbb94..ea03f1ec12a4 100644
--- a/drivers/pci/dwc/pci-exynos.c
+++ b/drivers/pci/dwc/pci-exynos.c
@@ -695,7 +695,8 @@  static int __init exynos_pcie_probe(struct platform_device *pdev)
 			return ret;
-	if (ep->ops && ep->ops->get_clk_resources) {
+	if (ep->ops && ep->ops->get_clk_resources &&
+			ep->ops->init_clk_resources) {
 		ret = ep->ops->get_clk_resources(ep);
 		if (ret)
 			return ret;