staging: rtl8188eu: core: Improve cleanup code
authorTapasweni Pathak <tapaswenipathak@gmail.com>
Thu, 30 Oct 2014 15:41:57 +0000 (21:11 +0530)
committerGreg Kroah-Hartman <gregkh@linuxfoundation.org>
Thu, 30 Oct 2014 20:12:05 +0000 (13:12 -0700)
The code is restructured such that kfree(efuseTbl) is not called
if the allocation of efuseTbl and such that kfree(eFuseWord) is not
called if the allocation of eFuseWord has failed.

To accomplish this a new label eFuseWord_failed has been added.

Suggested by: Julia Lawall <julia.lawall@lip6.fr>
Signed-off-by: Tapasweni Pathak <tapaswenipathak@gmail.com>
Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
drivers/staging/rtl8188eu/core/rtw_efuse.c

index 31986670b7f0f6276c2a18bdb735ce012bafc572..c47b1573c6e88a404eae96e429287d7c2f1493b0 100644 (file)
@@ -106,13 +106,13 @@ efuse_phymap_to_logical(u8 *phymap, u16 _offset, u16 _size_byte, u8  *pbuf)
        efuseTbl = kzalloc(EFUSE_MAP_LEN_88E, GFP_KERNEL);
        if (efuseTbl == NULL) {
                DBG_88E("%s: alloc efuseTbl fail!\n", __func__);
-               goto exit;
+               return;
        }
 
        eFuseWord = (u16 **)rtw_malloc2d(EFUSE_MAX_SECTION_88E, EFUSE_MAX_WORD_UNIT, sizeof(u16));
        if (eFuseWord == NULL) {
                DBG_88E("%s: alloc eFuseWord fail!\n", __func__);
-               goto exit;
+               goto eFuseWord_failed;
        }
 
        /*  0. Refresh efuse init map as all oxFF. */
@@ -210,10 +210,10 @@ efuse_phymap_to_logical(u8 *phymap, u16 _offset, u16 _size_byte, u8  *pbuf)
        /*  */
 
 exit:
-       kfree(efuseTbl);
+       kfree(eFuseWord);
 
-       if (eFuseWord)
-               kfree(eFuseWord);
+eFuseWord_failed:
+       kfree(efuseTbl);
 }
 
 static void efuse_read_phymap_from_txpktbuf(