Commit 6254acde authored by Hariprasad Kelam's avatar Hariprasad Kelam Committed by Greg Kroah-Hartman

staging: rtl8723bs: os_dep: ioctl_linux: make use of kzalloc

This patch is a cleanup which replaces rtw_malloc(wep_total_len) with
kzalloc() and removes the memset().

The rtw_malloc() does GFP_ATOMIC allocations when in_atomic() is true.
But as the comments for in_atomic() describe, the in_atomic() check
should not be used in driver code.  The in_atomic() check is not
accurate when preempt is disabled.

In this code we are not in IRQ context and we are not holding any
spin_locks so GFP_KERNEL is safe.
Signed-off-by: default avatarHariprasad Kelam <hariprasad.kelam@gmail.com>
----
changes in v2: Replace rtw_zmalloc with kzalloc
changes in v3: Add proper changelog
Signed-off-by: default avatarGreg Kroah-Hartman <gregkh@linuxfoundation.org>
parent 35659639
...@@ -477,14 +477,12 @@ static int wpa_set_encryption(struct net_device *dev, struct ieee_param *param, ...@@ -477,14 +477,12 @@ static int wpa_set_encryption(struct net_device *dev, struct ieee_param *param,
if (wep_key_len > 0) { if (wep_key_len > 0) {
wep_key_len = wep_key_len <= 5 ? 5 : 13; wep_key_len = wep_key_len <= 5 ? 5 : 13;
wep_total_len = wep_key_len + FIELD_OFFSET(struct ndis_802_11_wep, KeyMaterial); wep_total_len = wep_key_len + FIELD_OFFSET(struct ndis_802_11_wep, KeyMaterial);
pwep = rtw_malloc(wep_total_len); pwep = kzalloc(wep_total_len, GFP_KERNEL);
if (pwep == NULL) { if (pwep == NULL) {
RT_TRACE(_module_rtl871x_ioctl_os_c, _drv_err_, (" wpa_set_encryption: pwep allocate fail !!!\n")); RT_TRACE(_module_rtl871x_ioctl_os_c, _drv_err_, (" wpa_set_encryption: pwep allocate fail !!!\n"));
goto exit; goto exit;
} }
memset(pwep, 0, wep_total_len);
pwep->KeyLength = wep_key_len; pwep->KeyLength = wep_key_len;
pwep->Length = wep_total_len; pwep->Length = wep_total_len;
...@@ -2142,12 +2140,10 @@ static int rtw_wx_set_enc_ext(struct net_device *dev, ...@@ -2142,12 +2140,10 @@ static int rtw_wx_set_enc_ext(struct net_device *dev,
int ret = 0; int ret = 0;
param_len = sizeof(struct ieee_param) + pext->key_len; param_len = sizeof(struct ieee_param) + pext->key_len;
param = rtw_malloc(param_len); param = kzalloc(param_len, GFP_KERNEL);
if (param == NULL) if (param == NULL)
return -1; return -1;
memset(param, 0, param_len);
param->cmd = IEEE_CMD_SET_ENCRYPTION; param->cmd = IEEE_CMD_SET_ENCRYPTION;
memset(param->sta_addr, 0xff, ETH_ALEN); memset(param->sta_addr, 0xff, ETH_ALEN);
...@@ -3513,14 +3509,12 @@ static int rtw_set_encryption(struct net_device *dev, struct ieee_param *param, ...@@ -3513,14 +3509,12 @@ static int rtw_set_encryption(struct net_device *dev, struct ieee_param *param,
if (wep_key_len > 0) { if (wep_key_len > 0) {
wep_key_len = wep_key_len <= 5 ? 5 : 13; wep_key_len = wep_key_len <= 5 ? 5 : 13;
wep_total_len = wep_key_len + FIELD_OFFSET(struct ndis_802_11_wep, KeyMaterial); wep_total_len = wep_key_len + FIELD_OFFSET(struct ndis_802_11_wep, KeyMaterial);
pwep = rtw_malloc(wep_total_len); pwep = kzalloc(wep_total_len, GFP_KERNEL);
if (pwep == NULL) { if (pwep == NULL) {
DBG_871X(" r871x_set_encryption: pwep allocate fail !!!\n"); DBG_871X(" r871x_set_encryption: pwep allocate fail !!!\n");
goto exit; goto exit;
} }
memset(pwep, 0, wep_total_len);
pwep->KeyLength = wep_key_len; pwep->KeyLength = wep_key_len;
pwep->Length = wep_total_len; pwep->Length = wep_total_len;
......
Markdown is supported
0%
or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment