aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorGreg Kroah-Hartman <[email protected]>2021-08-02 16:30:39 +0200
committerGreg Kroah-Hartman <[email protected]>2021-08-02 16:30:39 +0200
commit11e14fc3e49481b6322bbd976bb7dd2f0d7ef3d2 (patch)
tree3f84722e53e69debd642b84d2f613754028ce5c5
parentc66cd19e2b0c47a042ba219e446e2efefdea82de (diff)
Revert "staging: r8188eu: remove rtw_buf_free() function"
This reverts commit c7e88ecbe328e2bcd892d84c4b26eff86cb776ef as it's broken because somehow I forgot how pointers work... Reported-by: Larry Finger <[email protected]> Cc: "Fabio M. De Francesco" <[email protected]> Signed-off-by: Greg Kroah-Hartman <[email protected]>
-rw-r--r--drivers/staging/r8188eu/core/rtw_mlme.c8
-rw-r--r--drivers/staging/r8188eu/core/rtw_mlme_ext.c11
-rw-r--r--drivers/staging/r8188eu/include/osdep_service.h1
-rw-r--r--drivers/staging/r8188eu/os_dep/osdep_service.c7
4 files changed, 13 insertions, 14 deletions
diff --git a/drivers/staging/r8188eu/core/rtw_mlme.c b/drivers/staging/r8188eu/core/rtw_mlme.c
index d692f1477cc8..a6d62074289f 100644
--- a/drivers/staging/r8188eu/core/rtw_mlme.c
+++ b/drivers/staging/r8188eu/core/rtw_mlme.c
@@ -102,12 +102,8 @@ static void rtw_free_mlme_ie_data(u8 **ppie, u32 *plen)
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);
diff --git a/drivers/staging/r8188eu/core/rtw_mlme_ext.c b/drivers/staging/r8188eu/core/rtw_mlme_ext.c
index 1160b7caffdd..78f66664bf9c 100644
--- a/drivers/staging/r8188eu/core/rtw_mlme_ext.c
+++ b/drivers/staging/r8188eu/core/rtw_mlme_ext.c
@@ -1522,9 +1522,7 @@ report_assoc_result:
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);
@@ -5551,11 +5549,8 @@ void issue_assocreq(struct adapter *padapter)
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;
}
diff --git a/drivers/staging/r8188eu/include/osdep_service.h b/drivers/staging/r8188eu/include/osdep_service.h
index 05cbc9b0dadd..ac0bd5cd0f82 100644
--- a/drivers/staging/r8188eu/include/osdep_service.h
+++ b/drivers/staging/r8188eu/include/osdep_service.h
@@ -440,6 +440,7 @@ u64 rtw_division64(u64 x, u64 y);
(((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 {
diff --git a/drivers/staging/r8188eu/os_dep/osdep_service.c b/drivers/staging/r8188eu/os_dep/osdep_service.c
index 99ddc535e5ea..71d4fa25db86 100644
--- a/drivers/staging/r8188eu/os_dep/osdep_service.c
+++ b/drivers/staging/r8188eu/os_dep/osdep_service.c
@@ -388,6 +388,13 @@ u64 rtw_division64(u64 x, u64 y)
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;