summaryrefslogtreecommitdiffstats
path: root/drivers/net/ethernet
diff options
context:
space:
mode:
authorSergei Shtylyov <sergei.shtylyov@cogentembedded.com>2013-10-30 23:30:19 +0300
committerDavid S. Miller <davem@davemloft.net>2013-11-04 15:49:28 -0500
commit3b4c5cbf42bda976ab70354e7786a0808265d9d5 (patch)
treeee60ea2b60d9dfb382f509722c6564d51d920958 /drivers/net/ethernet
parent6f9fed0bd2f82bafe1d8ab200916d9bd55b36c66 (diff)
downloadop-kernel-dev-3b4c5cbf42bda976ab70354e7786a0808265d9d5.zip
op-kernel-dev-3b4c5cbf42bda976ab70354e7786a0808265d9d5.tar.gz
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 <sergei.shtylyov@cogentembedded.com> Acked-by: Simon Horman <horms+renesas@verge.net.au> Signed-off-by: David S. Miller <davem@davemloft.net>
Diffstat (limited to 'drivers/net/ethernet')
-rw-r--r--drivers/net/ethernet/renesas/sh_eth.c6
1 files changed, 6 insertions, 0 deletions
diff --git a/drivers/net/ethernet/renesas/sh_eth.c b/drivers/net/ethernet/renesas/sh_eth.c
index eaf11e4..d256ce1 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;
OpenPOWER on IntegriCloud