diff options
author | Lothar Waßmann <LW@KARO-electronics.de> | 2013-03-21 02:20:11 +0000 |
---|---|---|
committer | David S. Miller <davem@davemloft.net> | 2013-03-21 11:57:42 -0400 |
commit | ce16294fda230c787ce5c35f61b2f80d14d70a72 (patch) | |
tree | 99a974957b09721e0379f58ca25da4e5ee68fe0d /drivers/net | |
parent | cb0e51d80694fc9964436be1a1a15275e991cb1e (diff) | |
download | op-kernel-dev-ce16294fda230c787ce5c35f61b2f80d14d70a72.zip op-kernel-dev-ce16294fda230c787ce5c35f61b2f80d14d70a72.tar.gz |
net: ethernet: cpsw: fix erroneous condition in error check
The error check in cpsw_probe_dt() has an '&&' where an '||' is
meant to be. This causes a NULL pointer dereference when incomplet DT
data is passed to the driver ('phy_id' property for cpsw_emac1
missing).
Signed-off-by: Lothar Waßmann <LW@KARO-electronics.de>
Signed-off-by: David S. Miller <davem@davemloft.net>
Diffstat (limited to 'drivers/net')
-rw-r--r-- | drivers/net/ethernet/ti/cpsw.c | 2 |
1 files changed, 1 insertions, 1 deletions
diff --git a/drivers/net/ethernet/ti/cpsw.c b/drivers/net/ethernet/ti/cpsw.c index 75c4855..df32a09 100644 --- a/drivers/net/ethernet/ti/cpsw.c +++ b/drivers/net/ethernet/ti/cpsw.c @@ -1364,7 +1364,7 @@ static int cpsw_probe_dt(struct cpsw_platform_data *data, struct platform_device *mdio; parp = of_get_property(slave_node, "phy_id", &lenp); - if ((parp == NULL) && (lenp != (sizeof(void *) * 2))) { + if ((parp == NULL) || (lenp != (sizeof(void *) * 2))) { pr_err("Missing slave[%d] phy_id property\n", i); ret = -EINVAL; goto error_ret; |