dm9000: Return an ERR_PTR() in all error conditions of dm9000_parse_dt()
authorTobias Klauser <tklauser@distanz.ch>
Fri, 19 Sep 2014 14:16:25 +0000 (16:16 +0200)
committerDavid S. Miller <davem@davemloft.net>
Mon, 22 Sep 2014 20:02:34 +0000 (16:02 -0400)
In one error condition dm9000_parse_dt() returns NULL, however the
return value is checked using IS_ERR() in dm9000_probe(), leading to the
error not being properly propagated if CONFIG_OF is not enabled or the
device tree data is not available. Fix this by also returning an
ERR_PTR() in this case.

Fixes: 0b8bf1baabe5 (net: dm9000: Allow instantiation using device tree)
Signed-off-by: Tobias Klauser <tklauser@distanz.ch>
Signed-off-by: David S. Miller <davem@davemloft.net>
drivers/net/ethernet/davicom/dm9000.c

index 9b33057a94779f239b2515269444dd8c4617a018..70089c29d307a43643222959202228403c31e97f 100644 (file)
@@ -1399,7 +1399,7 @@ static struct dm9000_plat_data *dm9000_parse_dt(struct device *dev)
        const void *mac_addr;
 
        if (!IS_ENABLED(CONFIG_OF) || !np)
-               return NULL;
+               return ERR_PTR(-ENXIO);
 
        pdata = devm_kzalloc(dev, sizeof(*pdata), GFP_KERNEL);
        if (!pdata)