diff options
author | Vitaly Osipov <vitaly.osipov@gmail.com> | 2014-05-24 18:19:27 +1000 |
---|---|---|
committer | Greg Kroah-Hartman <gregkh@linuxfoundation.org> | 2014-05-25 11:04:44 -0700 |
commit | 91d435fe368ab30702d7bcd50f680e7185899295 (patch) | |
tree | 2415c6d2ad015124be711c82499e0affd6ef89fb /drivers/staging/rtl8712/rtl871x_ioctl_linux.c | |
parent | 811e843ddf9a6583b5c7b45f700fdc92aad24d06 (diff) | |
download | op-kernel-dev-91d435fe368ab30702d7bcd50f680e7185899295.zip op-kernel-dev-91d435fe368ab30702d7bcd50f680e7185899295.tar.gz |
staging: rtl8712: remove _malloc()
This patch removes all usage of _malloc() and the function itself. Most
uses are straightforward replacements by kmalloc(..., GFP_ATOMIC),
because this was the definition of _malloc(). In a few places it
was possible to use kzalloc() or memdup_user.
A further improvement would be to replace GFP_ATOMIC with GFP_KERNEL
where possible.
Verified by compilation only.
Initial replacement done by running a Coccinelle script along the lines
of:
@@
type T;
expression E;
identifier V;
@@
- V = (T) _malloc(E);
+ V = kmalloc(E, GFP_ATOMIC);
@@
expression E, E1;
@@
- E1 = _malloc(E);
+ E1 = kmalloc(E, GFP_ATOMIC);
Signed-off-by: Vitaly Osipov <vitaly.osipov@gmail.com>
Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
Diffstat (limited to 'drivers/staging/rtl8712/rtl871x_ioctl_linux.c')
-rw-r--r-- | drivers/staging/rtl8712/rtl871x_ioctl_linux.c | 35 |
1 files changed, 12 insertions, 23 deletions
diff --git a/drivers/staging/rtl8712/rtl871x_ioctl_linux.c b/drivers/staging/rtl8712/rtl871x_ioctl_linux.c index 1eca992..e147c4b 100644 --- a/drivers/staging/rtl8712/rtl871x_ioctl_linux.c +++ b/drivers/staging/rtl8712/rtl871x_ioctl_linux.c @@ -424,10 +424,9 @@ static int wpa_set_encryption(struct net_device *dev, struct ieee_param *param, wep_key_idx = 0; if (wep_key_len > 0) { wep_key_len = wep_key_len <= 5 ? 5 : 13; - pwep = (struct NDIS_802_11_WEP *)_malloc((u32) - (wep_key_len + - FIELD_OFFSET(struct NDIS_802_11_WEP, - KeyMaterial))); + pwep = kmalloc((u32)(wep_key_len + + FIELD_OFFSET(struct NDIS_802_11_WEP, KeyMaterial)), + GFP_ATOMIC); if (pwep == NULL) return -ENOMEM; memset(pwep, 0, sizeof(struct NDIS_802_11_WEP)); @@ -518,10 +517,9 @@ static int r871x_set_wpa_ie(struct _adapter *padapter, char *pie, if ((ielen > MAX_WPA_IE_LEN) || (pie == NULL)) return -EINVAL; if (ielen) { - buf = _malloc(ielen); + buf = kmemdup(pie, ielen, GFP_ATOMIC); if (buf == NULL) return -ENOMEM; - memcpy(buf, pie , ielen); pos = buf; if (ielen < RSN_HEADER_LEN) { ret = -EINVAL; @@ -959,13 +957,9 @@ static int r871x_wx_set_priv(struct net_device *dev, struct iw_point *dwrq = (struct iw_point *)awrq; len = dwrq->length; - ext = _malloc(len); - if (!ext) - return -ENOMEM; - if (copy_from_user(ext, dwrq->pointer, len)) { - kfree(ext); - return -EFAULT; - } + ext = memdup_user(dwrq->pointer, len); + if (IS_ERR(ext)) + return PTR_ERR(ext); if (0 == strcasecmp(ext, "RSSI")) { /*Return received signal strength indicator in -db for */ @@ -1819,10 +1813,9 @@ static int r871x_wx_set_enc_ext(struct net_device *dev, } param_len = sizeof(struct ieee_param) + pext->key_len; - param = (struct ieee_param *)_malloc(param_len); + param = kzalloc(param_len, GFP_ATOMIC); if (param == NULL) return -ENOMEM; - memset(param, 0, param_len); param->cmd = IEEE_CMD_SET_ENCRYPTION; memset(param->sta_addr, 0xff, ETH_ALEN); @@ -1922,7 +1915,7 @@ static int r871x_mp_ioctl_hdl(struct net_device *dev, bset = (u8)(p->flags & 0xFFFF); len = p->length; pparmbuf = NULL; - pparmbuf = (u8 *)_malloc(len); + pparmbuf = kmalloc(len, GFP_ATOMIC); if (pparmbuf == NULL) { ret = -ENOMEM; goto _r871x_mp_ioctl_hdl_exit; @@ -2195,13 +2188,9 @@ static int wpa_supplicant_ioctl(struct net_device *dev, struct iw_point *p) if (p->length < sizeof(struct ieee_param) || !p->pointer) return -EINVAL; - param = (struct ieee_param *)_malloc(p->length); - if (param == NULL) - return -ENOMEM; - if (copy_from_user(param, p->pointer, p->length)) { - kfree((u8 *)param); - return -EFAULT; - } + param = memdup_user(p->pointer, p->length); + if (IS_ERR(param)) + return PTR_ERR(param); switch (param->cmd) { case IEEE_CMD_SET_WPA_PARAM: ret = wpa_set_param(dev, param->u.wpa_param.name, |