void rtw_free_mlme_priv_ie_data(struct mlme_priv *pmlmepriv)
{
- kfree(&pmlmepriv->assoc_req);
- pmlmepriv->assoc_req = NULL;
- pmlmepriv->assoc_req_len = 0;
- kfree(&pmlmepriv->assoc_rsp);
- pmlmepriv->assoc_rsp = NULL;
- pmlmepriv->assoc_rsp_len = 0;
+ rtw_buf_free(&pmlmepriv->assoc_req, &pmlmepriv->assoc_req_len);
+ rtw_buf_free(&pmlmepriv->assoc_rsp, &pmlmepriv->assoc_rsp_len);
rtw_free_mlme_ie_data(&pmlmepriv->wps_beacon_ie, &pmlmepriv->wps_beacon_ie_len);
rtw_free_mlme_ie_data(&pmlmepriv->wps_probe_req_ie, &pmlmepriv->wps_probe_req_ie_len);
rtw_free_mlme_ie_data(&pmlmepriv->wps_probe_resp_ie, &pmlmepriv->wps_probe_resp_ie_len);
if (res > 0) {
rtw_buf_update(&pmlmepriv->assoc_rsp, &pmlmepriv->assoc_rsp_len, pframe, pkt_len);
} else {
- kfree(&pmlmepriv->assoc_rsp);
- pmlmepriv->assoc_rsp = NULL;
- pmlmepriv->assoc_rsp_len = 0;
+ rtw_buf_free(&pmlmepriv->assoc_rsp, &pmlmepriv->assoc_rsp_len);
}
report_join_res(padapter, res);
exit:
if (ret == _SUCCESS)
rtw_buf_update(&pmlmepriv->assoc_req, &pmlmepriv->assoc_req_len, (u8 *)pwlanhdr, pattrib->pktlen);
- else {
- kfree(&pmlmepriv->assoc_req);
- pmlmepriv->assoc_req = NULL;
- pmlmepriv->assoc_req_len = 0;
- }
+ else
+ rtw_buf_free(&pmlmepriv->assoc_req, &pmlmepriv->assoc_req_len);
return;
}
(((u64) (a)[3]) << 24) | (((u64) (a)[2]) << 16) | \
(((u64) (a)[1]) << 8) | ((u64) (a)[0]))
+void rtw_buf_free(u8 **buf, u32 *buf_len);
void rtw_buf_update(u8 **buf, u32 *buf_len, u8 *src, u32 src_len);
struct rtw_cbuf {
return x;
}
+void rtw_buf_free(u8 **buf, u32 *buf_len)
+{
+ *buf_len = 0;
+ kfree(*buf);
+ *buf = NULL;
+}
+
void rtw_buf_update(u8 **buf, u32 *buf_len, u8 *src, u32 src_len)
{
u32 ori_len = 0, dup_len = 0;