From: Sergei Shtylyov Date: Wed, 30 Oct 2013 20:30:19 +0000 (+0300) Subject: sh_eth: check platform data pointer X-Git-Tag: v3.13-rc1~105^2~67 X-Git-Url: http://pileus.org/git/?a=commitdiff_plain;h=3b4c5cbf42bda976ab70354e7786a0808265d9d5;p=~andy%2Flinux sh_eth: check platform data pointer Check the platform data pointer before dereferencing it and error out of the probe() method if it's NULL. This has additional effect of preventing kernel oops with outdated platform data containing zero PHY address instead (such as on SolutionEngine7710). Signed-off-by: Sergei Shtylyov Acked-by: Simon Horman Signed-off-by: David S. Miller --- diff --git a/drivers/net/ethernet/renesas/sh_eth.c b/drivers/net/ethernet/renesas/sh_eth.c index eaf11e47334..d256ce19d4d 100644 --- a/drivers/net/ethernet/renesas/sh_eth.c +++ b/drivers/net/ethernet/renesas/sh_eth.c @@ -2663,6 +2663,12 @@ static int sh_eth_drv_probe(struct platform_device *pdev) pm_runtime_enable(&pdev->dev); pm_runtime_resume(&pdev->dev); + if (!pd) { + dev_err(&pdev->dev, "no platform data\n"); + ret = -EINVAL; + goto out_release; + } + /* get PHY ID */ mdp->phy_id = pd->phy; mdp->phy_interface = pd->phy_interface;