staging: wilc1000: Return correct error codes
authorAmitoj Kaur Chawla <amitoj1606@gmail.com>
Wed, 17 Feb 2016 15:11:03 +0000 (20:41 +0530)
committerGreg Kroah-Hartman <gregkh@linuxfoundation.org>
Sat, 20 Feb 2016 01:00:07 +0000 (17:00 -0800)
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>
drivers/staging/wilc1000/linux_wlan.c

index a731b46..274f468 100644 (file)
@@ -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;