diff options
author | Amitoj Kaur Chawla <amitoj1606@gmail.com> | 2016-02-17 15:11:03 (GMT) |
---|---|---|
committer | Greg Kroah-Hartman <gregkh@linuxfoundation.org> | 2016-02-20 01:00:07 (GMT) |
commit | fe747f0f34c638b639e1158f62c5d2f7a6d589c9 (patch) | |
tree | 06bb6483b0b79845c5a9c0bad1f17b3c8fed72cf | |
parent | 8459af6acf4a18ea6c9729499438a5482fb24dae (diff) | |
download | linux-fe747f0f34c638b639e1158f62c5d2f7a6d589c9.tar.xz |
staging: wilc1000: Return correct error codes
This change has been made with the goal that kernel functions should
return something more descriptive than -1 on failure.
The return value on an alloc_etherdev failure should be -ENOMEM,
and not -1.
This was found using Coccinelle. A simplified version of the semantic
patch used is:
//<smpl>
@@
expression *e;
identifier l1;
@@
e = alloc_etherdev(...);
if (e == NULL) {
...
return
- -1
+ -ENOMEM
;
}
//</smpl
Furthermore, introduced `ret` variable to store and return the
corresponding error code returned by register_netdev on failure.
The two call sites store the return value in a variable which only
checks that the value is non-zero, hence no change is required at
the call sites.
Signed-off-by: Amitoj Kaur Chawla <amitoj1606@gmail.com>
Reviewed-by: Arnd Bergmann <arnd@arndb.de>
Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
-rw-r--r-- | drivers/staging/wilc1000/linux_wlan.c | 9 |
1 files changed, 5 insertions, 4 deletions
diff --git a/drivers/staging/wilc1000/linux_wlan.c b/drivers/staging/wilc1000/linux_wlan.c index a731b46..274f468 100644 --- a/drivers/staging/wilc1000/linux_wlan.c +++ b/drivers/staging/wilc1000/linux_wlan.c @@ -1312,7 +1312,7 @@ EXPORT_SYMBOL_GPL(wilc_netdev_cleanup); int wilc_netdev_init(struct wilc **wilc, struct device *dev, int io_type, int gpio, const struct wilc_hif_func *ops) { - int i; + int i, ret; struct wilc_vif *vif; struct net_device *ndev; struct wilc *wl; @@ -1333,7 +1333,7 @@ int wilc_netdev_init(struct wilc **wilc, struct device *dev, int io_type, for (i = 0; i < NUM_CONCURRENT_IFC; i++) { ndev = alloc_etherdev(sizeof(struct wilc_vif)); if (!ndev) - return -1; + return -ENOMEM; vif = netdev_priv(ndev); memset(vif, 0, sizeof(struct wilc_vif)); @@ -1372,8 +1372,9 @@ int wilc_netdev_init(struct wilc **wilc, struct device *dev, int io_type, vif->netstats.tx_bytes = 0; } - if (register_netdev(ndev)) - return -1; + ret = register_netdev(ndev); + if (ret) + return ret; vif->iftype = STATION_MODE; vif->mac_opened = 0; |