lkml.org 
[lkml]   [2015]   [Jun]   [27]   [last100]   RSS Feed
Views: [wrap][no wrap]   [headers]  [forward] 
 
Messages in this thread
    Patch in this message
    /
    Date
    From
    Subject[PATCH 2/2] staging: wilc1000: One function call less in mac_ioctl() after error detection
    From: Markus Elfring <elfring@users.sourceforge.net>
    Date: Sat, 27 Jun 2015 16:00:59 +0200

    The kfree() function was called in two cases by the mac_ioctl() function
    during error handling even if the passed variable did not contain a pointer
    for a valid data item.

    * This implementation detail could be improved by the introduction
    of another jump label.

    * Drop an unnecessary initialisation for the variable "buff" then.

    Signed-off-by: Markus Elfring <elfring@users.sourceforge.net>
    ---
    drivers/staging/wilc1000/linux_wlan.c | 10 ++++------
    1 file changed, 4 insertions(+), 6 deletions(-)

    diff --git a/drivers/staging/wilc1000/linux_wlan.c b/drivers/staging/wilc1000/linux_wlan.c
    index 2aa8d9b..f492310 100644
    --- a/drivers/staging/wilc1000/linux_wlan.c
    +++ b/drivers/staging/wilc1000/linux_wlan.c
    @@ -2351,16 +2351,13 @@ int mac_close(struct net_device *ndev)

    int mac_ioctl(struct net_device *ndev, struct ifreq *req, int cmd)
    {
    -
    - u8 *buff = NULL;
    + u8 *buff;
    s8 rssi;
    u32 size = 0, length = 0;
    perInterface_wlan_t *nic;
    struct WILC_WFI_priv *priv;
    s32 s32Error = WILC_SUCCESS;

    -
    -
    /* struct iwreq *wrq = (struct iwreq *) req; // tony moved to case SIOCSIWPRIV */
    #ifdef USE_WIRELESS
    nic = netdev_priv(ndev);
    @@ -2405,7 +2402,7 @@ int mac_ioctl(struct net_device *ndev, struct ifreq *req, int cmd)
    if (copy_to_user(wrq->u.data.pointer, buff, size)) {
    PRINT_ER("%s: failed to copy data to user buffer\n", __func__);
    s32Error = -EFAULT;
    - goto done;
    + goto free_buffer;
    }
    }
    }
    @@ -2420,8 +2417,9 @@ int mac_ioctl(struct net_device *ndev, struct ifreq *req, int cmd)
    }
    }

    -done:
    +free_buffer:
    kfree(buff);
    +done:
    return s32Error;
    }

    --
    2.4.4


    \
     
     \ /
      Last update: 2015-06-27 17:01    [W:4.045 / U:0.112 seconds]
    ©2003-2020 Jasper Spaans|hosted at Digital Ocean and TransIP|Read the blog|Advertise on this site