From: Himangi Saraogi Date: Sat, 21 Jun 2014 15:09:51 +0000 (+0530) Subject: Staging: rtl8192e: adjust error handling X-Git-Tag: firefly_0821_release~176^2~3491^2~1554 X-Git-Url: http://demsky.eecs.uci.edu/git/?a=commitdiff_plain;h=49d74d7091364bcfdd3b35b1bda913351d543fed;p=firefly-linux-kernel-4.4.55.git Staging: rtl8192e: adjust error handling This patch removes a test in error handling code by adding a return path. The Coccinelle semantic match that found the problem is: // @@ expression E,E1,E2; @@ E = alloc_etherdev(...) ... when != E = E1 if (...) { ... free_netdev(E); ... return ...; } ... when != E = E2 ( if (...) { ... when != free_netdev(E); return dev; } | * if (...) { ... when != free_netdev(E); return ...; } | register_netdev(E) ) // Signed-off-by: Himangi Saraogi Acked-by: Julia Lawall Signed-off-by: Greg Kroah-Hartman --- diff --git a/drivers/staging/rtl8192e/rtllib_module.c b/drivers/staging/rtl8192e/rtllib_module.c index 136909eff6d5..ba95149fa42e 100644 --- a/drivers/staging/rtl8192e/rtllib_module.c +++ b/drivers/staging/rtl8192e/rtllib_module.c @@ -111,7 +111,7 @@ struct net_device *alloc_rtllib(int sizeof_priv) dev = alloc_etherdev(sizeof(struct rtllib_device) + sizeof_priv); if (!dev) { RTLLIB_ERROR("Unable to network device.\n"); - goto failed; + return NULL; } ieee = (struct rtllib_device *)netdev_priv_rsl(dev); memset(ieee, 0, sizeof(struct rtllib_device)+sizeof_priv); @@ -180,8 +180,7 @@ struct net_device *alloc_rtllib(int sizeof_priv) return dev; failed: - if (dev) - free_netdev(dev); + free_netdev(dev); return NULL; } EXPORT_SYMBOL(alloc_rtllib);