aboutsummaryrefslogtreecommitdiffstats
path: root/drivers/net/ethernet/ti
diff options
context:
space:
mode:
authorJohan Hovold <jhovold@gmail.com>2014-05-08 04:09:23 -0400
committerDavid S. Miller <davem@davemloft.net>2014-05-09 15:51:20 -0400
commit6954cc1f238199e971ec905c5cc87120806ac981 (patch)
tree2f0629dff0216c6b432123beb3809df4c1b9b288 /drivers/net/ethernet/ti
parent59993f48b38fd46863b23bb1bb1dc3291e7278fb (diff)
net: cpsw: fix null dereference at probe
Fix null-pointer dereference at probe when the mdio platform device is missing (e.g. when it has been disabled in DT). Cc: stable <stable@vger.kernel.org> # v3.8 Signed-off-by: Johan Hovold <jhovold@gmail.com> Signed-off-by: David S. Miller <davem@davemloft.net>
Diffstat (limited to 'drivers/net/ethernet/ti')
-rw-r--r--drivers/net/ethernet/ti/cpsw.c4
1 files changed, 4 insertions, 0 deletions
diff --git a/drivers/net/ethernet/ti/cpsw.c b/drivers/net/ethernet/ti/cpsw.c
index 18d83d8d7f74..db9360cd861c 100644
--- a/drivers/net/ethernet/ti/cpsw.c
+++ b/drivers/net/ethernet/ti/cpsw.c
@@ -1871,6 +1871,10 @@ static int cpsw_probe_dt(struct cpsw_platform_data *data,
1871 mdio_node = of_find_node_by_phandle(be32_to_cpup(parp)); 1871 mdio_node = of_find_node_by_phandle(be32_to_cpup(parp));
1872 phyid = be32_to_cpup(parp+1); 1872 phyid = be32_to_cpup(parp+1);
1873 mdio = of_find_device_by_node(mdio_node); 1873 mdio = of_find_device_by_node(mdio_node);
1874 if (!mdio) {
1875 pr_err("Missing mdio platform device\n");
1876 return -EINVAL;
1877 }
1874 snprintf(slave_data->phy_id, sizeof(slave_data->phy_id), 1878 snprintf(slave_data->phy_id, sizeof(slave_data->phy_id),
1875 PHY_ID_FMT, mdio->name, phyid); 1879 PHY_ID_FMT, mdio->name, phyid);
1876 1880