}
 
                if (remainder_ielen > 0) {
-                       pbackup_remainder_ie = rtw_malloc(remainder_ielen);
+                       pbackup_remainder_ie = kmalloc(remainder_ielen, GFP_KERNEL);
                        if (pbackup_remainder_ie && premainder_ie)
                                memcpy(pbackup_remainder_ie, premainder_ie, remainder_ielen);
                }
        }
 
        if (remainder_ielen > 0) {
-               pbackup_remainder_ie = rtw_malloc(remainder_ielen);
+               pbackup_remainder_ie = kmalloc(remainder_ielen, GFP_KERNEL);
                if (pbackup_remainder_ie && premainder_ie)
                        memcpy(pbackup_remainder_ie, premainder_ie, remainder_ielen);
        }
        }
 
        if (remainder_ielen > 0) {
-               pbackup_remainder_ie = rtw_malloc(remainder_ielen);
+               pbackup_remainder_ie = kmalloc(remainder_ielen, GFP_KERNEL);
                if (pbackup_remainder_ie && premainder_ie)
                        memcpy(pbackup_remainder_ie, premainder_ie, remainder_ielen);
        }
        remainder_ielen = ielen - wps_offset - wps_ielen;
 
        if (remainder_ielen > 0) {
-               pbackup_remainder_ie = rtw_malloc(remainder_ielen);
+               pbackup_remainder_ie = kmalloc(remainder_ielen, GFP_KERNEL);
                if (pbackup_remainder_ie)
                        memcpy(pbackup_remainder_ie, premainder_ie, remainder_ielen);
        }
 
                }
                db = db->next_hash;
        }
-       db = (struct nat25_network_db_entry *) rtw_malloc(sizeof(*db));
+       db = kmalloc(sizeof(*db), GFP_KERNEL);
        if (!db) {
                spin_unlock_bh(&priv->br_ext_lock);
                return;
 
                if ((c2h_evt = (struct c2h_evt_hdr *)rtw_cbuf_pop(evtpriv->c2h_queue)) != NULL) {
                        /* This C2H event is read, clear it */
                        c2h_evt_clear(adapter);
-               } else if ((c2h_evt = (struct c2h_evt_hdr *)rtw_malloc(16)) != NULL) {
-                       /* This C2H event is not read, read & clear now */
-                       if (c2h_evt_read(adapter, (u8 *)c2h_evt) != _SUCCESS)
-                               continue;
+               } else {
+                       c2h_evt = kmalloc(16, GFP_KERNEL);
+                       if (c2h_evt) {
+                               /* This C2H event is not read, read & clear now */
+                               if (c2h_evt_read(adapter, (u8 *)c2h_evt) != _SUCCESS)
+                                       continue;
+                       }
                }
 
                /* Special pointer to trigger c2h_evt_clear only */
 
        if ((addr + cnts) > mapLen)
                return _FAIL;
 
-       map = rtw_zmalloc(mapLen);
+       map = kzalloc(mapLen, GFP_KERNEL);
        if (!map)
                return _FAIL;
 
        if ((addr + cnts) > mapLen)
                return _FAIL;
 
-       map = rtw_zmalloc(mapLen);
+       map = kzalloc(mapLen, GFP_KERNEL);
        if (!map)
                return _FAIL;
 
 
        struct  cmd_priv *pcmdpriv = &(adapter->cmdpriv);
        int             res = _SUCCESS;
 
-       pcmd = (struct  cmd_obj *)rtw_zmalloc(sizeof(struct cmd_obj));
+       pcmd = kzalloc(sizeof(struct cmd_obj), GFP_KERNEL);
        if (!pcmd) {
                res = _FAIL;  /* try again */
                goto exit;
        }
 
-       psetauthparm = (struct setauth_parm *)rtw_zmalloc(sizeof(struct setauth_parm));
+       psetauthparm = kzalloc(sizeof(struct setauth_parm), GFP_KERNEL);
        if (!psetauthparm) {
                kfree(pcmd);
                res = _FAIL;
        struct mlme_priv                *pmlmepriv = &(adapter->mlmepriv);
        int     res = _SUCCESS;
 
-       pcmd = (struct  cmd_obj *)rtw_zmalloc(sizeof(struct     cmd_obj));
+       pcmd = kzalloc(sizeof(struct cmd_obj), GFP_KERNEL);
        if (!pcmd) {
                res = _FAIL;  /* try again */
                goto exit;
        }
-       psetkeyparm = (struct setkey_parm *)rtw_zmalloc(sizeof(struct setkey_parm));
+       psetkeyparm = kzalloc(sizeof(struct setkey_parm), GFP_KERNEL);
        if (!psetkeyparm) {
                kfree(pcmd);
                res = _FAIL;
 
        if (!memcmp(GetAddr3Ptr(pframe), get_my_bssid(&pmlmeinfo->network), ETH_ALEN)) {
                if (pmlmeinfo->state & WIFI_FW_AUTH_NULL) {
                        /* we should update current network before auth, or some IE is wrong */
-                       pbss = (struct wlan_bssid_ex *)rtw_malloc(sizeof(struct wlan_bssid_ex));
+                       pbss = kmalloc(sizeof(struct wlan_bssid_ex), GFP_ATOMIC);
                        if (pbss) {
                                if (collect_bss_info(padapter, precv_frame, pbss) == _SUCCESS) {
                                        update_network(&(pmlmepriv->cur_network.network), pbss, padapter, true);
        pmlmeext = &padapter->mlmeextpriv;
        pcmdpriv = &padapter->cmdpriv;
 
-       pcmd_obj = (struct cmd_obj *)rtw_zmalloc(sizeof(struct cmd_obj));
+       pcmd_obj = kzalloc(sizeof(struct cmd_obj), GFP_ATOMIC);
        if (!pcmd_obj)
                return;
 
        cmdsz = (sizeof(struct survey_event) + sizeof(struct C2HEvent_Header));
-       pevtcmd = (u8 *)rtw_zmalloc(cmdsz);
+       pevtcmd = kzalloc(cmdsz, GFP_ATOMIC);
        if (!pevtcmd) {
                kfree(pcmd_obj);
                return;
        struct mlme_ext_priv            *pmlmeext = &padapter->mlmeextpriv;
        struct cmd_priv *pcmdpriv = &padapter->cmdpriv;
 
-       pcmd_obj = (struct cmd_obj *)rtw_zmalloc(sizeof(struct cmd_obj));
+       pcmd_obj = kzalloc(sizeof(struct cmd_obj), GFP_KERNEL);
        if (!pcmd_obj)
                return;
 
        cmdsz = (sizeof(struct surveydone_event) + sizeof(struct C2HEvent_Header));
-       pevtcmd = (u8 *)rtw_zmalloc(cmdsz);
+       pevtcmd = kzalloc(cmdsz, GFP_KERNEL);
        if (!pevtcmd) {
                kfree(pcmd_obj);
                return;
        struct mlme_ext_info    *pmlmeinfo = &(pmlmeext->mlmext_info);
        struct cmd_priv *pcmdpriv = &padapter->cmdpriv;
 
-       pcmd_obj = (struct cmd_obj *)rtw_zmalloc(sizeof(struct cmd_obj));
+       pcmd_obj = kzalloc(sizeof(struct cmd_obj), GFP_ATOMIC);
        if (!pcmd_obj)
                return;
 
        cmdsz = (sizeof(struct joinbss_event) + sizeof(struct C2HEvent_Header));
-       pevtcmd = (u8 *)rtw_zmalloc(cmdsz);
+       pevtcmd = kzalloc(cmdsz, GFP_ATOMIC);
        if (!pevtcmd) {
                kfree(pcmd_obj);
                return;
        struct mlme_ext_priv            *pmlmeext = &padapter->mlmeextpriv;
        struct cmd_priv *pcmdpriv = &padapter->cmdpriv;
 
-       pcmd_obj = (struct cmd_obj *)rtw_zmalloc(sizeof(struct cmd_obj));
+       pcmd_obj = kzalloc(sizeof(struct cmd_obj), GFP_KERNEL);
        if (!pcmd_obj)
                return;
 
        cmdsz = (sizeof(struct stadel_event) + sizeof(struct C2HEvent_Header));
-       pevtcmd = (u8 *)rtw_zmalloc(cmdsz);
+       pevtcmd = kzalloc(cmdsz, GFP_KERNEL);
        if (!pevtcmd) {
                kfree(pcmd_obj);
                return;
        struct mlme_ext_priv            *pmlmeext = &padapter->mlmeextpriv;
        struct cmd_priv *pcmdpriv = &padapter->cmdpriv;
 
-       pcmd_obj = (struct cmd_obj *)rtw_zmalloc(sizeof(struct cmd_obj));
+       pcmd_obj = kzalloc(sizeof(struct cmd_obj), GFP_KERNEL);
        if (!pcmd_obj)
                return;
 
        cmdsz = (sizeof(struct stassoc_event) + sizeof(struct C2HEvent_Header));
-       pevtcmd = (u8 *)rtw_zmalloc(cmdsz);
+       pevtcmd = kzalloc(cmdsz, GFP_KERNEL);
        if (!pevtcmd) {
                kfree(pcmd_obj);
                return;
                        pmlmeext->scan_abort = false;/* reset */
                }
 
-               ph2c = (struct cmd_obj *)rtw_zmalloc(sizeof(struct cmd_obj));
+               ph2c = kzalloc(sizeof(struct cmd_obj), GFP_ATOMIC);
                if (!ph2c)
                        goto exit_survey_timer_hdl;
 
-               psurveyPara = (struct sitesurvey_parm *)rtw_zmalloc(sizeof(struct sitesurvey_parm));
+               psurveyPara = kzalloc(sizeof(struct sitesurvey_parm), GFP_ATOMIC);
                if (!psurveyPara) {
                        kfree(ph2c);
                        goto exit_survey_timer_hdl;
        u8 res = _SUCCESS;
        int len_diff = 0;
 
-       ph2c = (struct cmd_obj *)rtw_zmalloc(sizeof(struct cmd_obj));
+       ph2c = kzalloc(sizeof(struct cmd_obj), GFP_KERNEL);
        if (!ph2c) {
                res = _FAIL;
                goto exit;
        }
 
-       ptxBeacon_parm = (struct Tx_Beacon_param *)rtw_zmalloc(sizeof(struct Tx_Beacon_param));
+       ptxBeacon_parm = kzalloc(sizeof(struct Tx_Beacon_param), GFP_KERNEL);
        if (!ptxBeacon_parm) {
                kfree(ph2c);
                res = _FAIL;
 
        kfree(pmp_priv->tx.pallocated_buf);
        pmp_priv->tx.write_size = pkt_size;
        pmp_priv->tx.buf_size = pkt_size + XMITBUF_ALIGN_SZ;
-       pmp_priv->tx.pallocated_buf = rtw_zmalloc(pmp_priv->tx.buf_size);
+       pmp_priv->tx.pallocated_buf = kzalloc(pmp_priv->tx.buf_size, GFP_KERNEL);
        if (!pmp_priv->tx.pallocated_buf) {
                DBG_88E("%s: malloc(%d) fail!!\n", __func__, pmp_priv->tx.buf_size);
                return;
 
 
        DBG_88E("%s\n", __func__);
 
-       pdata_attr = rtw_zmalloc(MAX_P2P_IE_LEN);
+       pdata_attr = kzalloc(MAX_P2P_IE_LEN, GFP_KERNEL);
 
        pstart = pdata_attr;
        pcur = pdata_attr;
                /* Check P2P Device Info ATTR */
                if (rtw_get_p2p_attr_content(p2p_ie, p2p_ielen, P2P_ATTR_DEVICE_INFO, NULL, (uint *)&attr_contentlen)) {
                        DBG_88E("[%s] Got P2P DEVICE INFO Attr!!\n", __func__);
-                       pattr_content = rtw_zmalloc(attr_contentlen);
+                       pattr_content = kzalloc(attr_contentlen, GFP_KERNEL);
                        pbuf = pattr_content;
                        if (pattr_content) {
                                u8 num_of_secdev_type;
                return res;
 
        if (enqueue) {
-               ph2c = (struct cmd_obj *)rtw_zmalloc(sizeof(struct cmd_obj));
+               ph2c = kzalloc(sizeof(struct cmd_obj), GFP_KERNEL);
                if (!ph2c) {
                        res = _FAIL;
                        goto exit;
                }
 
-               pdrvextra_cmd_parm = (struct drvextra_cmd_parm *)rtw_zmalloc(sizeof(struct drvextra_cmd_parm));
+               pdrvextra_cmd_parm = kzalloc(sizeof(struct drvextra_cmd_parm), GFP_KERNEL);
                if (!pdrvextra_cmd_parm) {
                        kfree(ph2c);
                        res = _FAIL;
 
                return true;
        }
 
-       bssid = (struct wlan_bssid_ex *)rtw_zmalloc(sizeof(struct wlan_bssid_ex));
+       bssid = kzalloc(sizeof(struct wlan_bssid_ex), GFP_ATOMIC);
        if (!bssid)
                return _FAIL;
 
 
 
        pxmitpriv->hwxmit_entry = HWXMIT_ENTRY;
 
-       pxmitpriv->hwxmits = (struct hw_xmit *)rtw_zmalloc(sizeof(struct hw_xmit) * pxmitpriv->hwxmit_entry);
+       pxmitpriv->hwxmits = kzalloc(sizeof(struct hw_xmit) * pxmitpriv->hwxmit_entry, GFP_KERNEL);
 
        hwxmits = pxmitpriv->hwxmits;
 
 
        struct rsvdpage_loc RsvdPageLoc;
 
        DBG_88E("%s\n", __func__);
-       ReservedPagePacket = (u8 *)rtw_zmalloc(1000);
+       ReservedPagePacket = kzalloc(1000, GFP_KERNEL);
        if (!ReservedPagePacket) {
                DBG_88E("%s: alloc ReservedPagePacket fail!\n", __func__);
                return;
 
        u16     efuse_utilized = 0;
        u8 u1temp = 0;
 
-       efuseTbl = (u8 *)rtw_zmalloc(EFUSE_MAP_LEN_88E);
+       efuseTbl = kzalloc(EFUSE_MAP_LEN_88E, GFP_KERNEL);
        if (!efuseTbl) {
                DBG_88E("%s: alloc efuseTbl fail!\n", __func__);
                goto exit;
        }
 
-       eFuseWord = (u16 **)rtw_malloc2d(EFUSE_MAX_SECTION_88E, EFUSE_MAX_WORD_UNIT, sizeof(u16));
+       eFuseWord = rtw_malloc2d(EFUSE_MAX_SECTION_88E, EFUSE_MAX_WORD_UNIT, sizeof(u16));
        if (!eFuseWord) {
                DBG_88E("%s: alloc eFuseWord fail!\n", __func__);
                goto exit;
                goto exit;
        }
 
-       efuseTbl = (u8 *)rtw_zmalloc(EFUSE_MAP_LEN_88E);
+       efuseTbl = kzalloc(EFUSE_MAP_LEN_88E, GFP_KERNEL);
        if (!efuseTbl) {
                DBG_88E("%s: alloc efuseTbl fail!\n", __func__);
                goto exit;
        }
 
-       eFuseWord = (u16 **)rtw_malloc2d(EFUSE_MAX_SECTION_88E, EFUSE_MAX_WORD_UNIT, sizeof(u16));
+       eFuseWord = rtw_malloc2d(EFUSE_MAX_SECTION_88E, EFUSE_MAX_WORD_UNIT, sizeof(u16));
        if (!eFuseWord) {
                DBG_88E("%s: alloc eFuseWord fail!\n", __func__);
                goto exit;
 
        /* init recv_buf */
        _rtw_init_queue(&precvpriv->free_recv_buf_queue);
 
-       precvpriv->pallocated_recv_buf = rtw_zmalloc(NR_RECVBUFF * sizeof(struct recv_buf) + 4);
+       precvpriv->pallocated_recv_buf = kzalloc(NR_RECVBUFF * sizeof(struct recv_buf) + 4,
+                                                GFP_KERNEL);
        if (!precvpriv->pallocated_recv_buf) {
                res = _FAIL;
                goto exit;
 
 {
        struct hal_ops  *halfunc = &adapt->HalFunc;
 
-       adapt->HalData = rtw_zmalloc(sizeof(struct hal_data_8188e));
+       adapt->HalData = kzalloc(sizeof(struct hal_data_8188e), GFP_KERNEL);
        if (!adapt->HalData)
                DBG_88E("cant not alloc memory for HAL DATA\n");
        adapt->hal_data_sz = sizeof(struct hal_data_8188e);
 
 u8 *_rtw_vmalloc(u32 sz);
 u8 *_rtw_zvmalloc(u32 sz);
 void _rtw_vmfree(u8 *pbuf, u32 sz);
-u8 *_rtw_zmalloc(u32 sz);
-u8 *_rtw_malloc(u32 sz);
-void _rtw_mfree(u8 *pbuf, u32 sz);
 #define rtw_vmalloc(sz)                        _rtw_vmalloc((sz))
 #define rtw_zvmalloc(sz)                       _rtw_zvmalloc((sz))
 #define rtw_vmfree(pbuf, sz)           _rtw_vmfree((pbuf), (sz))
-#define rtw_malloc(sz)                 _rtw_malloc((sz))
-#define rtw_zmalloc(sz)                        _rtw_zmalloc((sz))
-#define rtw_mfree(pbuf, sz)            _rtw_mfree((pbuf), (sz))
 
 void *rtw_malloc2d(int h, int w, int size);
 
 
                if (wep_key_len > 0) {
                        wep_key_len = wep_key_len <= 5 ? 5 : 13;
                        wep_total_len = wep_key_len + FIELD_OFFSET(struct ndis_802_11_wep, KeyMaterial);
-                       pwep = (struct ndis_802_11_wep *)rtw_malloc(wep_total_len);
+                       pwep = kmalloc(wep_total_len, GFP_KERNEL);
                        if (!pwep) {
                                RT_TRACE(_module_rtl871x_ioctl_os_c, _drv_err_, (" wpa_set_encryption: pwep allocate fail !!!\n"));
                                goto exit;
        }
 
        if (ielen) {
-               buf = rtw_zmalloc(ielen);
+               buf = kzalloc(ielen, GFP_KERNEL);
                if (!buf) {
                        ret =  -ENOMEM;
                        goto exit;
        int ret = 0;
 
        param_len = sizeof(struct ieee_param) + pext->key_len;
-       param = (struct ieee_param *)rtw_malloc(param_len);
+       param = kzalloc(param_len, GFP_KERNEL);
        if (!param)
-               return -1;
-
-       memset(param, 0, param_len);
+               return -ENOMEM;
 
        param->cmd = IEEE_CMD_SET_ENCRYPTION;
        memset(param->sta_addr, 0xff, ETH_ALEN);
        padapter = (struct adapter *)rtw_netdev_priv(dev);
        p = &wrqu->data;
        len = p->length;
-       ptmp = (u8 *)rtw_malloc(len);
-       if (NULL == ptmp)
+       ptmp = kmalloc(len, GFP_KERNEL);
+       if (!ptmp)
                return -ENOMEM;
 
        if (copy_from_user(ptmp, p->pointer, len)) {
        pparmbuf = NULL;
        bset = (u8)(p->flags & 0xFFFF);
        len = p->length;
-       pparmbuf = (u8 *)rtw_malloc(len);
+       pparmbuf = kmalloc(len, GFP_KERNEL);
        if (!pparmbuf) {
                ret = -ENOMEM;
                goto _rtw_mp_ioctl_hdl_exit;
                goto out;
        }
 
-       param = (struct ieee_param *)rtw_malloc(p->length);
+       param = kmalloc(p->length, GFP_KERNEL);
        if (!param) {
                ret = -ENOMEM;
                goto out;
        struct cmd_priv *pcmdpriv = &padapter->cmdpriv;
        u8 res = _SUCCESS;
 
-       ph2c = (struct cmd_obj *)rtw_zmalloc(sizeof(struct cmd_obj));
+       ph2c = kzalloc(sizeof(struct cmd_obj), GFP_KERNEL);
        if (!ph2c) {
                res = _FAIL;
                goto exit;
        }
 
-       psetstakey_para = (struct set_stakey_parm *)rtw_zmalloc(sizeof(struct set_stakey_parm));
+       psetstakey_para = kzalloc(sizeof(struct set_stakey_parm), GFP_KERNEL);
        if (!psetstakey_para) {
                kfree(ph2c);
                res = _FAIL;
 
        DBG_88E("%s\n", __func__);
 
-       pcmd = (struct cmd_obj *)rtw_zmalloc(sizeof(struct      cmd_obj));
+       pcmd = kzalloc(sizeof(struct cmd_obj), GFP_KERNEL);
        if (!pcmd) {
                res = _FAIL;
                goto exit;
        }
-       psetkeyparm = (struct setkey_parm *)rtw_zmalloc(sizeof(struct setkey_parm));
+       psetkeyparm = kzalloc(sizeof(struct setkey_parm), GFP_KERNEL);
        if (!psetkeyparm) {
                kfree(pcmd);
                res = _FAIL;
                if (wep_key_len > 0) {
                        wep_key_len = wep_key_len <= 5 ? 5 : 13;
                        wep_total_len = wep_key_len + FIELD_OFFSET(struct ndis_802_11_wep, KeyMaterial);
-                       pwep = (struct ndis_802_11_wep *)rtw_malloc(wep_total_len);
+                       pwep = kzalloc(wep_total_len, GFP_KERNEL);
                        if (!pwep) {
-                               DBG_88E(" r871x_set_encryption: pwep allocate fail !!!\n");
+                               ret = -ENOMEM;
                                goto exit;
                        }
-
-                       memset(pwep, 0, wep_total_len);
-
                        pwep->KeyLength = wep_key_len;
                        pwep->Length = wep_total_len;
                }
        }
 
        if (ie_len > 0) {
-               pmlmepriv->wps_beacon_ie = rtw_malloc(ie_len);
+               pmlmepriv->wps_beacon_ie = kmalloc(ie_len, GFP_KERNEL);
                pmlmepriv->wps_beacon_ie_len = ie_len;
                if (!pmlmepriv->wps_beacon_ie) {
                        DBG_88E("%s()-%d: rtw_malloc() ERROR!\n", __func__, __LINE__);
        }
 
        if (ie_len > 0) {
-               pmlmepriv->wps_probe_resp_ie = rtw_malloc(ie_len);
+               pmlmepriv->wps_probe_resp_ie = kmalloc(ie_len, GFP_KERNEL);
                pmlmepriv->wps_probe_resp_ie_len = ie_len;
                if (!pmlmepriv->wps_probe_resp_ie) {
                        DBG_88E("%s()-%d: rtw_malloc() ERROR!\n", __func__, __LINE__);
        }
 
        if (ie_len > 0) {
-               pmlmepriv->wps_assoc_resp_ie = rtw_malloc(ie_len);
+               pmlmepriv->wps_assoc_resp_ie = kmalloc(ie_len, GFP_KERNEL);
                pmlmepriv->wps_assoc_resp_ie_len = ie_len;
                if (!pmlmepriv->wps_assoc_resp_ie) {
                        DBG_88E("%s()-%d: rtw_malloc() ERROR!\n", __func__, __LINE__);
-                       return -EINVAL;
+                       return -ENOMEM;
                }
 
                memcpy(pmlmepriv->wps_assoc_resp_ie, param->u.bcn_ie.buf, ie_len);
                goto out;
        }
 
-       param = (struct ieee_param *)rtw_malloc(p->length);
+       param = kmalloc(p->length, GFP_KERNEL);
        if (!param) {
                ret = -ENOMEM;
                goto out;
                        kfree(pmlmepriv->wps_probe_req_ie);
                        pmlmepriv->wps_probe_req_ie = NULL;
 
-                       pmlmepriv->wps_probe_req_ie = rtw_malloc(cp_sz);
+                       pmlmepriv->wps_probe_req_ie = kmalloc(cp_sz, GFP_KERNEL);
                        if (!pmlmepriv->wps_probe_req_ie) {
-                               pr_info("%s()-%d: rtw_malloc() ERROR!\n", __func__, __LINE__);
                                ret =  -EINVAL;
                                goto FREE_EXT;
                        }
        pEfuseHal = &haldata->EfuseHal;
 
        err = 0;
-       data = _rtw_zmalloc(EFUSE_BT_MAX_MAP_LEN);
+       data = kzalloc(EFUSE_BT_MAX_MAP_LEN, GFP_KERNEL);
        if (!data) {
                err = -ENOMEM;
                goto exit;
        }
-       rawdata = _rtw_zmalloc(EFUSE_BT_MAX_MAP_LEN);
+       rawdata = kzalloc(EFUSE_BT_MAX_MAP_LEN, GFP_KERNEL);
        if (!rawdata) {
                err = -ENOMEM;
                goto exit;
        haldata = GET_HAL_DATA(padapter);
        pEfuseHal = &haldata->EfuseHal;
        err = 0;
-       setdata = _rtw_zmalloc(1024);
+       setdata = kzalloc(1024, GFP_KERNEL);
        if (!setdata) {
                err = -ENOMEM;
                goto exit;
        }
-       ShadowMapBT = _rtw_malloc(EFUSE_BT_MAX_MAP_LEN);
+       ShadowMapBT = kmalloc(EFUSE_BT_MAX_MAP_LEN, GFP_KERNEL);
        if (!ShadowMapBT) {
                err = -ENOMEM;
                goto exit;
        }
-       ShadowMapWiFi = _rtw_malloc(EFUSE_MAP_SIZE);
+       ShadowMapWiFi = kmalloc(EFUSE_MAP_SIZE, GFP_KERNEL);
        if (!ShadowMapWiFi) {
                err = -ENOMEM;
                goto exit;
        }
-       setrawdata = _rtw_malloc(EFUSE_MAX_SIZE);
+       setrawdata = kmalloc(EFUSE_MAX_SIZE, GFP_KERNEL);
        if (!setrawdata) {
                err = -ENOMEM;
                goto exit;
        DBG_88E("+%s\n", __func__);
        len = wrqu->data.length;
 
-       pbuf = (u8 *)rtw_zmalloc(len);
+       pbuf = kzalloc(len, GFP_KERNEL);
        if (!pbuf) {
                DBG_88E("%s: no memory!\n", __func__);
                return -ENOMEM;
        input_len = wdata.data.length;
        if (input_len == 0)
                return -EFAULT;
-       input = rtw_zmalloc(input_len);
+       input = kzalloc(input_len, GFP_KERNEL);
        if (NULL == input)
                return -ENOMEM;
        if (copy_from_user(input, wdata.data.pointer, input_len)) {
                k = j;
        }
 
-       buffer = rtw_zmalloc(4096);
+       buffer = kzalloc(4096, GFP_KERNEL);
        if (NULL == buffer) {
                err = -ENOMEM;
                goto exit;
                else
                        n = wdata.data.length;
 
-               output = rtw_zmalloc(4096);
+               output = kzalloc(4096, GFP_KERNEL);
                if (NULL == output) {
                        err =  -ENOMEM;
                        goto exit;
 
        if (authmode == _WPA_IE_ID_) {
                RT_TRACE(_module_mlme_osdep_c_, _drv_info_,
                         ("rtw_report_sec_ie, authmode=%d\n", authmode));
-               buff = rtw_malloc(IW_CUSTOM_MAX);
+               buff = kzalloc(IW_CUSTOM_MAX, GFP_KERNEL);
                if (!buff)
                        return;
-               memset(buff, 0, IW_CUSTOM_MAX);
                p = buff;
                p += sprintf(p, "ASSOCINFO(ReqIEs =");
                len = sec_ie[1]+2;
 
        vfree(pbuf);
 }
 
-u8 *_rtw_malloc(u32 sz)
-{
-       u8      *pbuf = NULL;
-
-       pbuf = kmalloc(sz, in_interrupt() ? GFP_ATOMIC : GFP_KERNEL);
-       return pbuf;
-}
-
-u8 *_rtw_zmalloc(u32 sz)
-{
-       u8      *pbuf = _rtw_malloc(sz);
-
-       if (pbuf)
-               memset(pbuf, 0, sz);
-       return pbuf;
-}
-
 void *rtw_malloc2d(int h, int w, int size)
 {
        int j;
 
-       void **a = (void **)rtw_zmalloc(h*sizeof(void *) + h*w*size);
-       if (!a) {
-               pr_info("%s: alloc memory fail!\n", __func__);
+       void **a = kzalloc(h * sizeof(void *) + h * w * size, GFP_KERNEL);
+       if (!a)
                return NULL;
-       }
 
        for (j = 0; j < h; j++)
                a[j] = ((char *)(a+h)) + j*w*size;
                goto keep_ori;
 
        /* duplicate src */
-       dup = rtw_malloc(src_len);
+       dup = kmalloc(src_len, GFP_ATOMIC);
        if (dup) {
                dup_len = src_len;
                memcpy(dup, src, dup_len);
 {
        struct rtw_cbuf *cbuf;
 
-       cbuf = (struct rtw_cbuf *)rtw_malloc(sizeof(*cbuf) +
-              sizeof(void *)*size);
+       cbuf = kmalloc(sizeof(*cbuf) + sizeof(void *)*size, GFP_KERNEL);
 
        if (cbuf) {
                cbuf->write = 0;
 
 
        _rtw_mutex_init(&dvobj->usb_vendor_req_mutex);
 
-       dvobj->usb_alloc_vendor_req_buf = rtw_zmalloc(MAX_USB_IO_CTL_SIZE);
+       dvobj->usb_alloc_vendor_req_buf = kzalloc(MAX_USB_IO_CTL_SIZE, GFP_KERNEL);
        if (!dvobj->usb_alloc_vendor_req_buf) {
                DBG_88E("alloc usb_vendor_req_buf failed... /n");
                rst = _FAIL;
        struct usb_endpoint_descriptor  *pendp_desc;
        struct usb_device       *pusbd;
 
-       pdvobjpriv = (struct dvobj_priv *)rtw_zmalloc(sizeof(*pdvobjpriv));
+       pdvobjpriv = kzalloc(sizeof(*pdvobjpriv), GFP_KERNEL);
        if (!pdvobjpriv)
                goto exit;
 
 
 {
        int i;
 
-       pxmitbuf->pallocated_buf = rtw_zmalloc(alloc_sz);
+       pxmitbuf->pallocated_buf = kzalloc(alloc_sz, GFP_KERNEL);
        if (!pxmitbuf->pallocated_buf)
                return _FAIL;