diff options
author | Lothar Waßmann <LW@KARO-electronics.de> | 2013-03-21 02:20:11 +0000 |
---|---|---|
committer | Greg Kroah-Hartman <gregkh@linuxfoundation.org> | 2013-04-05 09:26:19 -0700 |
commit | 4a2438e61cf83c3173766d77216b3dba25d65583 (patch) | |
tree | 209403f03e0360e61f7bb0f68fa23f771de22519 /drivers/net | |
parent | 09269638aab0f527678426fe9258b384fe6bb103 (diff) | |
download | lwn-4a2438e61cf83c3173766d77216b3dba25d65583.tar.gz lwn-4a2438e61cf83c3173766d77216b3dba25d65583.zip |
net: ethernet: cpsw: fix erroneous condition in error check
[ Upstream commit ce16294fda230c787ce5c35f61b2f80d14d70a72 ]
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>
Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
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 b85ca6b2c19b..3b1be52ccf8d 100644 --- a/drivers/net/ethernet/ti/cpsw.c +++ b/drivers/net/ethernet/ti/cpsw.c @@ -1111,7 +1111,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; |