Skip to content

Commit 980cd42

Browse files
Jminugregkh
authored andcommitted
staging: rtl8723bs: replace rtw_zmalloc() with kzalloc()
Replace the wrapper function rtw_zmalloc() with standard kzalloc(). Use kzalloc() for rtw_malloc() calls that were followed by manual zero initialization. About GFP Flags: - GFP_ATOMIC is used for allocations in atomic contexts such as spinlock-protected sections, tasklets, and timer handlers. - GFP_KERNEL is used for process contexts where sleeping is allowed. Additionally, use array_size() and size_add() to prevent potential integer overflows during allocation size calculation. Signed-off-by: Minu Jin <s9430939@naver.com> Reviewed-by: Andy Shevchenko <andriy.shevchenko@intel.com> Link: https://patch.msgid.link/20260204131347.3515949-4-s9430939@naver.com Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
1 parent 9577f3b commit 980cd42

14 files changed

Lines changed: 90 additions & 103 deletions

File tree

drivers/staging/rtl8723bs/core/rtw_ap.c

Lines changed: 4 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -1229,13 +1229,13 @@ u8 rtw_ap_set_pairwise_key(struct adapter *padapter, struct sta_info *psta)
12291229
struct cmd_priv *pcmdpriv = &padapter->cmdpriv;
12301230
u8 res = _SUCCESS;
12311231

1232-
ph2c = rtw_zmalloc(sizeof(struct cmd_obj));
1232+
ph2c = kzalloc(sizeof(*ph2c), GFP_KERNEL);
12331233
if (!ph2c) {
12341234
res = _FAIL;
12351235
goto exit;
12361236
}
12371237

1238-
psetstakey_para = rtw_zmalloc(sizeof(struct set_stakey_parm));
1238+
psetstakey_para = kzalloc(sizeof(*psetstakey_para), GFP_KERNEL);
12391239
if (!psetstakey_para) {
12401240
kfree(ph2c);
12411241
res = _FAIL;
@@ -1269,12 +1269,12 @@ static int rtw_ap_set_key(struct adapter *padapter,
12691269
struct cmd_priv *pcmdpriv = &padapter->cmdpriv;
12701270
int res = _SUCCESS;
12711271

1272-
pcmd = rtw_zmalloc(sizeof(struct cmd_obj));
1272+
pcmd = kzalloc(sizeof(*pcmd), GFP_KERNEL);
12731273
if (!pcmd) {
12741274
res = _FAIL;
12751275
goto exit;
12761276
}
1277-
psetkeyparm = rtw_zmalloc(sizeof(struct setkey_parm));
1277+
psetkeyparm = kzalloc(sizeof(*psetkeyparm), GFP_KERNEL);
12781278
if (!psetkeyparm) {
12791279
kfree(pcmd);
12801280
res = _FAIL;

drivers/staging/rtl8723bs/core/rtw_cmd.c

Lines changed: 39 additions & 42 deletions
Original file line numberDiff line numberDiff line change
@@ -171,15 +171,13 @@ int rtw_init_cmd_priv(struct cmd_priv *pcmdpriv)
171171

172172
pcmdpriv->cmd_seq = 1;
173173

174-
pcmdpriv->cmd_allocated_buf = rtw_zmalloc(MAX_CMDSZ + CMDBUFF_ALIGN_SZ);
175-
174+
pcmdpriv->cmd_allocated_buf = kzalloc(MAX_CMDSZ + CMDBUFF_ALIGN_SZ, GFP_ATOMIC);
176175
if (!pcmdpriv->cmd_allocated_buf)
177176
return -ENOMEM;
178177

179178
pcmdpriv->cmd_buf = PTR_ALIGN(pcmdpriv->cmd_allocated_buf, CMDBUFF_ALIGN_SZ);
180179

181-
pcmdpriv->rsp_allocated_buf = rtw_zmalloc(MAX_RSPSZ + 4);
182-
180+
pcmdpriv->rsp_allocated_buf = kzalloc(MAX_RSPSZ + 4, GFP_ATOMIC);
183181
if (!pcmdpriv->rsp_allocated_buf) {
184182
kfree(pcmdpriv->cmd_allocated_buf);
185183
return -ENOMEM;
@@ -535,11 +533,11 @@ u8 rtw_sitesurvey_cmd(struct adapter *padapter, struct ndis_802_11_ssid *ssid,
535533
if (check_fwstate(pmlmepriv, _FW_LINKED))
536534
rtw_lps_ctrl_wk_cmd(padapter, LPS_CTRL_SCAN, 1);
537535

538-
ph2c = rtw_zmalloc(sizeof(struct cmd_obj));
536+
ph2c = kzalloc(sizeof(*ph2c), GFP_ATOMIC);
539537
if (!ph2c)
540538
return _FAIL;
541539

542-
psurveyPara = rtw_zmalloc(sizeof(struct sitesurvey_parm));
540+
psurveyPara = kzalloc(sizeof(*psurveyPara), GFP_ATOMIC);
543541
if (!psurveyPara) {
544542
kfree(ph2c);
545543
return _FAIL;
@@ -603,7 +601,7 @@ u8 rtw_createbss_cmd(struct adapter *padapter)
603601
struct wlan_bssid_ex *pdev_network = &padapter->registrypriv.dev_network;
604602
u8 res = _SUCCESS;
605603

606-
pcmd = rtw_zmalloc(sizeof(struct cmd_obj));
604+
pcmd = kzalloc(sizeof(*pcmd), GFP_ATOMIC);
607605
if (!pcmd) {
608606
res = _FAIL;
609607
goto exit;
@@ -636,7 +634,7 @@ int rtw_startbss_cmd(struct adapter *padapter, int flags)
636634
start_bss_network(padapter);
637635
} else {
638636
/* need enqueue, prepare cmd_obj and enqueue */
639-
pcmd = rtw_zmalloc(sizeof(struct cmd_obj));
637+
pcmd = kzalloc(sizeof(*pcmd), GFP_KERNEL);
640638
if (!pcmd) {
641639
res = _FAIL;
642640
goto exit;
@@ -688,7 +686,7 @@ u8 rtw_joinbss_cmd(struct adapter *padapter, struct wlan_network *pnetwork)
688686
u32 tmp_len;
689687
u8 *ptmp = NULL;
690688

691-
pcmd = rtw_zmalloc(sizeof(struct cmd_obj));
689+
pcmd = kzalloc(sizeof(*pcmd), GFP_KERNEL);
692690
if (!pcmd) {
693691
res = _FAIL;
694692
goto exit;
@@ -797,7 +795,7 @@ u8 rtw_disassoc_cmd(struct adapter *padapter, u32 deauth_timeout_ms, bool enqueu
797795
u8 res = _SUCCESS;
798796

799797
/* prepare cmd parameter */
800-
param = rtw_zmalloc(sizeof(*param));
798+
param = kzalloc(sizeof(*param), GFP_KERNEL);
801799
if (!param) {
802800
res = _FAIL;
803801
goto exit;
@@ -806,7 +804,7 @@ u8 rtw_disassoc_cmd(struct adapter *padapter, u32 deauth_timeout_ms, bool enqueu
806804

807805
if (enqueue) {
808806
/* need enqueue, prepare cmd_obj and enqueue */
809-
cmdobj = rtw_zmalloc(sizeof(*cmdobj));
807+
cmdobj = kzalloc(sizeof(*cmdobj), GFP_KERNEL);
810808
if (!cmdobj) {
811809
res = _FAIL;
812810
kfree(param);
@@ -833,16 +831,15 @@ u8 rtw_setopmode_cmd(struct adapter *padapter, enum ndis_802_11_network_infrast
833831
struct cmd_priv *pcmdpriv = &padapter->cmdpriv;
834832
u8 res = _SUCCESS;
835833

836-
psetop = rtw_zmalloc(sizeof(struct setopmode_parm));
837-
834+
psetop = kzalloc(sizeof(*psetop), GFP_KERNEL);
838835
if (!psetop) {
839836
res = _FAIL;
840837
goto exit;
841838
}
842839
psetop->mode = (u8)networktype;
843840

844841
if (enqueue) {
845-
ph2c = rtw_zmalloc(sizeof(struct cmd_obj));
842+
ph2c = kzalloc(sizeof(*ph2c), GFP_KERNEL);
846843
if (!ph2c) {
847844
kfree(psetop);
848845
res = _FAIL;
@@ -869,7 +866,7 @@ u8 rtw_setstakey_cmd(struct adapter *padapter, struct sta_info *sta, u8 unicast_
869866
struct security_priv *psecuritypriv = &padapter->securitypriv;
870867
u8 res = _SUCCESS;
871868

872-
psetstakey_para = rtw_zmalloc(sizeof(struct set_stakey_parm));
869+
psetstakey_para = kzalloc(sizeof(*psetstakey_para), GFP_KERNEL);
873870
if (!psetstakey_para) {
874871
res = _FAIL;
875872
goto exit;
@@ -891,14 +888,14 @@ u8 rtw_setstakey_cmd(struct adapter *padapter, struct sta_info *sta, u8 unicast_
891888
padapter->securitypriv.busetkipkey = true;
892889

893890
if (enqueue) {
894-
ph2c = rtw_zmalloc(sizeof(struct cmd_obj));
891+
ph2c = kzalloc(sizeof(*ph2c), GFP_KERNEL);
895892
if (!ph2c) {
896893
kfree(psetstakey_para);
897894
res = _FAIL;
898895
goto exit;
899896
}
900897

901-
psetstakey_rsp = rtw_zmalloc(sizeof(struct set_stakey_rsp));
898+
psetstakey_rsp = kzalloc(sizeof(*psetstakey_rsp), GFP_KERNEL);
902899
if (!psetstakey_rsp) {
903900
kfree(ph2c);
904901
kfree(psetstakey_para);
@@ -936,20 +933,20 @@ u8 rtw_clearstakey_cmd(struct adapter *padapter, struct sta_info *sta, u8 enqueu
936933
rtw_camid_free(padapter, cam_id);
937934
}
938935
} else {
939-
ph2c = rtw_zmalloc(sizeof(struct cmd_obj));
936+
ph2c = kzalloc(sizeof(*ph2c), GFP_KERNEL);
940937
if (!ph2c) {
941938
res = _FAIL;
942939
goto exit;
943940
}
944941

945-
psetstakey_para = rtw_zmalloc(sizeof(struct set_stakey_parm));
942+
psetstakey_para = kzalloc(sizeof(*psetstakey_para), GFP_KERNEL);
946943
if (!psetstakey_para) {
947944
kfree(ph2c);
948945
res = _FAIL;
949946
goto exit;
950947
}
951948

952-
psetstakey_rsp = rtw_zmalloc(sizeof(struct set_stakey_rsp));
949+
psetstakey_rsp = kzalloc(sizeof(*psetstakey_rsp), GFP_KERNEL);
953950
if (!psetstakey_rsp) {
954951
kfree(ph2c);
955952
kfree(psetstakey_para);
@@ -979,13 +976,13 @@ u8 rtw_addbareq_cmd(struct adapter *padapter, u8 tid, u8 *addr)
979976

980977
u8 res = _SUCCESS;
981978

982-
ph2c = rtw_zmalloc(sizeof(struct cmd_obj));
979+
ph2c = kzalloc(sizeof(*ph2c), GFP_ATOMIC);
983980
if (!ph2c) {
984981
res = _FAIL;
985982
goto exit;
986983
}
987984

988-
paddbareq_parm = rtw_zmalloc(sizeof(struct addBaReq_parm));
985+
paddbareq_parm = kzalloc(sizeof(*paddbareq_parm), GFP_ATOMIC);
989986
if (!paddbareq_parm) {
990987
kfree(ph2c);
991988
res = _FAIL;
@@ -1012,13 +1009,13 @@ u8 rtw_reset_securitypriv_cmd(struct adapter *padapter)
10121009
struct cmd_priv *pcmdpriv = &padapter->cmdpriv;
10131010
u8 res = _SUCCESS;
10141011

1015-
ph2c = rtw_zmalloc(sizeof(struct cmd_obj));
1012+
ph2c = kzalloc(sizeof(*ph2c), GFP_ATOMIC);
10161013
if (!ph2c) {
10171014
res = _FAIL;
10181015
goto exit;
10191016
}
10201017

1021-
pdrvextra_cmd_parm = rtw_zmalloc(sizeof(struct drvextra_cmd_parm));
1018+
pdrvextra_cmd_parm = kzalloc(sizeof(*pdrvextra_cmd_parm), GFP_ATOMIC);
10221019
if (!pdrvextra_cmd_parm) {
10231020
kfree(ph2c);
10241021
res = _FAIL;
@@ -1045,13 +1042,13 @@ u8 rtw_free_assoc_resources_cmd(struct adapter *padapter)
10451042
struct cmd_priv *pcmdpriv = &padapter->cmdpriv;
10461043
u8 res = _SUCCESS;
10471044

1048-
ph2c = rtw_zmalloc(sizeof(struct cmd_obj));
1045+
ph2c = kzalloc(sizeof(*ph2c), GFP_ATOMIC);
10491046
if (!ph2c) {
10501047
res = _FAIL;
10511048
goto exit;
10521049
}
10531050

1054-
pdrvextra_cmd_parm = rtw_zmalloc(sizeof(struct drvextra_cmd_parm));
1051+
pdrvextra_cmd_parm = kzalloc(sizeof(*pdrvextra_cmd_parm), GFP_ATOMIC);
10551052
if (!pdrvextra_cmd_parm) {
10561053
kfree(ph2c);
10571054
res = _FAIL;
@@ -1079,13 +1076,13 @@ u8 rtw_dynamic_chk_wk_cmd(struct adapter *padapter)
10791076
u8 res = _SUCCESS;
10801077

10811078
/* only primary padapter does this cmd */
1082-
ph2c = rtw_zmalloc(sizeof(struct cmd_obj));
1079+
ph2c = kzalloc(sizeof(*ph2c), GFP_ATOMIC);
10831080
if (!ph2c) {
10841081
res = _FAIL;
10851082
goto exit;
10861083
}
10871084

1088-
pdrvextra_cmd_parm = rtw_zmalloc(sizeof(struct drvextra_cmd_parm));
1085+
pdrvextra_cmd_parm = kzalloc(sizeof(*pdrvextra_cmd_parm), GFP_ATOMIC);
10891086
if (!pdrvextra_cmd_parm) {
10901087
kfree(ph2c);
10911088
res = _FAIL;
@@ -1319,13 +1316,13 @@ u8 rtw_lps_ctrl_wk_cmd(struct adapter *padapter, u8 lps_ctrl_type, u8 enqueue)
13191316
u8 res = _SUCCESS;
13201317

13211318
if (enqueue) {
1322-
ph2c = rtw_zmalloc(sizeof(struct cmd_obj));
1319+
ph2c = kzalloc(sizeof(*ph2c), GFP_ATOMIC);
13231320
if (!ph2c) {
13241321
res = _FAIL;
13251322
goto exit;
13261323
}
13271324

1328-
pdrvextra_cmd_parm = rtw_zmalloc(sizeof(struct drvextra_cmd_parm));
1325+
pdrvextra_cmd_parm = kzalloc(sizeof(*pdrvextra_cmd_parm), GFP_ATOMIC);
13291326
if (!pdrvextra_cmd_parm) {
13301327
kfree(ph2c);
13311328
res = _FAIL;
@@ -1360,13 +1357,13 @@ u8 rtw_dm_in_lps_wk_cmd(struct adapter *padapter)
13601357
struct cmd_priv *pcmdpriv = &padapter->cmdpriv;
13611358
u8 res = _SUCCESS;
13621359

1363-
ph2c = rtw_zmalloc(sizeof(struct cmd_obj));
1360+
ph2c = kzalloc(sizeof(*ph2c), GFP_ATOMIC);
13641361
if (!ph2c) {
13651362
res = _FAIL;
13661363
goto exit;
13671364
}
13681365

1369-
pdrvextra_cmd_parm = rtw_zmalloc(sizeof(struct drvextra_cmd_parm));
1366+
pdrvextra_cmd_parm = kzalloc(sizeof(*pdrvextra_cmd_parm), GFP_ATOMIC);
13701367
if (!pdrvextra_cmd_parm) {
13711368
kfree(ph2c);
13721369
res = _FAIL;
@@ -1422,13 +1419,13 @@ u8 rtw_dm_ra_mask_wk_cmd(struct adapter *padapter, u8 *psta)
14221419
struct cmd_priv *pcmdpriv = &padapter->cmdpriv;
14231420
u8 res = _SUCCESS;
14241421

1425-
ph2c = rtw_zmalloc(sizeof(struct cmd_obj));
1422+
ph2c = kzalloc(sizeof(*ph2c), GFP_ATOMIC);
14261423
if (!ph2c) {
14271424
res = _FAIL;
14281425
goto exit;
14291426
}
14301427

1431-
pdrvextra_cmd_parm = rtw_zmalloc(sizeof(struct drvextra_cmd_parm));
1428+
pdrvextra_cmd_parm = kzalloc(sizeof(*pdrvextra_cmd_parm), GFP_ATOMIC);
14321429
if (!pdrvextra_cmd_parm) {
14331430
kfree(ph2c);
14341431
res = _FAIL;
@@ -1456,13 +1453,13 @@ u8 rtw_ps_cmd(struct adapter *padapter)
14561453
struct cmd_priv *pcmdpriv = &padapter->cmdpriv;
14571454
u8 res = _SUCCESS;
14581455

1459-
ppscmd = rtw_zmalloc(sizeof(struct cmd_obj));
1456+
ppscmd = kzalloc(sizeof(*ppscmd), GFP_ATOMIC);
14601457
if (!ppscmd) {
14611458
res = _FAIL;
14621459
goto exit;
14631460
}
14641461

1465-
pdrvextra_cmd_parm = rtw_zmalloc(sizeof(struct drvextra_cmd_parm));
1462+
pdrvextra_cmd_parm = kzalloc(sizeof(*pdrvextra_cmd_parm), GFP_ATOMIC);
14661463
if (!pdrvextra_cmd_parm) {
14671464
kfree(ppscmd);
14681465
res = _FAIL;
@@ -1526,13 +1523,13 @@ u8 rtw_chk_hi_queue_cmd(struct adapter *padapter)
15261523
struct cmd_priv *pcmdpriv = &padapter->cmdpriv;
15271524
u8 res = _SUCCESS;
15281525

1529-
ph2c = rtw_zmalloc(sizeof(struct cmd_obj));
1526+
ph2c = kzalloc(sizeof(*ph2c), GFP_ATOMIC);
15301527
if (!ph2c) {
15311528
res = _FAIL;
15321529
goto exit;
15331530
}
15341531

1535-
pdrvextra_cmd_parm = rtw_zmalloc(sizeof(struct drvextra_cmd_parm));
1532+
pdrvextra_cmd_parm = kzalloc(sizeof(*pdrvextra_cmd_parm), GFP_ATOMIC);
15361533
if (!pdrvextra_cmd_parm) {
15371534
kfree(ph2c);
15381535
res = _FAIL;
@@ -1618,13 +1615,13 @@ u8 rtw_c2h_packet_wk_cmd(struct adapter *padapter, u8 *pbuf, u16 length)
16181615
struct cmd_priv *pcmdpriv = &padapter->cmdpriv;
16191616
u8 res = _SUCCESS;
16201617

1621-
ph2c = rtw_zmalloc(sizeof(struct cmd_obj));
1618+
ph2c = kzalloc(sizeof(*ph2c), GFP_ATOMIC);
16221619
if (!ph2c) {
16231620
res = _FAIL;
16241621
goto exit;
16251622
}
16261623

1627-
pdrvextra_cmd_parm = rtw_zmalloc(sizeof(struct drvextra_cmd_parm));
1624+
pdrvextra_cmd_parm = kzalloc(sizeof(*pdrvextra_cmd_parm), GFP_ATOMIC);
16281625
if (!pdrvextra_cmd_parm) {
16291626
kfree(ph2c);
16301627
res = _FAIL;
@@ -1653,13 +1650,13 @@ u8 rtw_c2h_wk_cmd(struct adapter *padapter, u8 *c2h_evt)
16531650
struct cmd_priv *pcmdpriv = &padapter->cmdpriv;
16541651
u8 res = _SUCCESS;
16551652

1656-
ph2c = rtw_zmalloc(sizeof(struct cmd_obj));
1653+
ph2c = kzalloc(sizeof(*ph2c), GFP_KERNEL);
16571654
if (!ph2c) {
16581655
res = _FAIL;
16591656
goto exit;
16601657
}
16611658

1662-
pdrvextra_cmd_parm = rtw_zmalloc(sizeof(struct drvextra_cmd_parm));
1659+
pdrvextra_cmd_parm = kzalloc(sizeof(*pdrvextra_cmd_parm), GFP_KERNEL);
16631660
if (!pdrvextra_cmd_parm) {
16641661
kfree(ph2c);
16651662
res = _FAIL;

drivers/staging/rtl8723bs/core/rtw_mlme.c

Lines changed: 5 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -1875,13 +1875,13 @@ signed int rtw_set_auth(struct adapter *adapter, struct security_priv *psecurity
18751875
struct cmd_priv *pcmdpriv = &adapter->cmdpriv;
18761876
signed int res = _SUCCESS;
18771877

1878-
pcmd = rtw_zmalloc(sizeof(struct cmd_obj));
1878+
pcmd = kzalloc(sizeof(*pcmd), GFP_KERNEL);
18791879
if (!pcmd) {
18801880
res = _FAIL; /* try again */
18811881
goto exit;
18821882
}
18831883

1884-
psetauthparm = rtw_zmalloc(sizeof(struct setauth_parm));
1884+
psetauthparm = kzalloc(sizeof(*psetauthparm), GFP_KERNEL);
18851885
if (!psetauthparm) {
18861886
kfree(pcmd);
18871887
res = _FAIL;
@@ -1912,7 +1912,7 @@ signed int rtw_set_key(struct adapter *adapter, struct security_priv *psecurityp
19121912
struct cmd_priv *pcmdpriv = &adapter->cmdpriv;
19131913
signed int res = _SUCCESS;
19141914

1915-
psetkeyparm = rtw_zmalloc(sizeof(struct setkey_parm));
1915+
psetkeyparm = kzalloc(sizeof(*psetkeyparm), GFP_KERNEL);
19161916
if (!psetkeyparm) {
19171917
res = _FAIL;
19181918
goto exit;
@@ -1954,7 +1954,7 @@ signed int rtw_set_key(struct adapter *adapter, struct security_priv *psecurityp
19541954
}
19551955

19561956
if (enqueue) {
1957-
pcmd = rtw_zmalloc(sizeof(struct cmd_obj));
1957+
pcmd = kzalloc(sizeof(*pcmd), GFP_KERNEL);
19581958
if (!pcmd) {
19591959
kfree(psetkeyparm);
19601960
res = _FAIL; /* try again */
@@ -2061,7 +2061,7 @@ static void rtw_report_sec_ie(struct adapter *adapter, u8 authmode, u8 *sec_ie)
20612061

20622062
buff = NULL;
20632063
if (authmode == WLAN_EID_VENDOR_SPECIFIC) {
2064-
buff = rtw_zmalloc(IW_CUSTOM_MAX);
2064+
buff = kzalloc(IW_CUSTOM_MAX, GFP_ATOMIC);
20652065
if (!buff)
20662066
return;
20672067

0 commit comments

Comments
 (0)