From nobody Sun Feb 8 20:53:06 2026 Received: from cvsmtppost22.nm.naver.com (cvsmtppost22.nm.naver.com [114.111.35.110]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by smtp.subspace.kernel.org (Postfix) with ESMTPS id B88B4279334 for ; Wed, 4 Feb 2026 13:24:04 +0000 (UTC) Authentication-Results: smtp.subspace.kernel.org; arc=none smtp.client-ip=114.111.35.110 ARC-Seal: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1770211445; cv=none; b=SK7OTeu3xcoS19sIt1B57Z5zc/bE+Py1T6YOLyf60vb9lPYW10SfQh0VFGrCjoOaUDLGziJuYhFSvBvY/9kRSRZSenQk0s/47c6AowUqreB56KLg5JTAoYqjRMv7W94YpuQD24+yELNOyBSwVmvnZ7upLUOAToATrU2R1fJt+Vo= ARC-Message-Signature: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1770211445; c=relaxed/simple; bh=oLcFFlXb4pyQeNcjT9SCzpOBhr+qButvS+vc6PoKcno=; h=From:To:Cc:Subject:Date:Message-ID:In-Reply-To:References: MIME-Version; b=LIDkEoiIVeNfji07yG521Bw0+//2pZJDS/ouUFm9UPzgKR1nRRuxSXEI4lSwajlDp1oS4U4FuiAmQtZkdVAuwESkKk0FO4MEPZRm3yfD/MtCzmZijFkkE2rFPWw2zzBpO134HsxXpTKD50kfBS6we+PoUhSDjCil+EFYNCqBjjI= ARC-Authentication-Results: i=1; smtp.subspace.kernel.org; dmarc=pass (p=none dis=none) header.from=naver.com; spf=pass smtp.mailfrom=naver.com; dkim=pass (2048-bit key) header.d=naver.com header.i=@naver.com header.b=V8cmRkuW; arc=none smtp.client-ip=114.111.35.110 Authentication-Results: smtp.subspace.kernel.org; dmarc=pass (p=none dis=none) header.from=naver.com Authentication-Results: smtp.subspace.kernel.org; spf=pass smtp.mailfrom=naver.com Authentication-Results: smtp.subspace.kernel.org; dkim=pass (2048-bit key) header.d=naver.com header.i=@naver.com header.b="V8cmRkuW" Received: from cvsendbo011.nm ([10.112.22.32]) by cvsmtppost22.nm.naver.com with ESMTP id AJfcfHgTTWSPTXIoJNLk4w for ; Wed, 04 Feb 2026 13:13:55 -0000 DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=naver.com; s=s20171208; t=1770210835; bh=oLcFFlXb4pyQeNcjT9SCzpOBhr+qButvS+vc6PoKcno=; h=From:To:Subject:Date:Message-ID:From:Subject:Feedback-ID: X-Works-Security; b=V8cmRkuWcd30XEvH5bLjgAyfE5VkveUbFmhMZXZGK+IABl8+LEGCU8QDQ0YZTUIxC +VdcbJi46iwrYmJcKskMiJzdy66+6gpsJcFLkMnv/oTsDDIgskIW6NUkB8Rm4nATpW vquAkKevwhdJkEq+pTd8OgPOVx4Qg3rMgtFocbQ9RNuYFBDyR0nTUBL6A8drgAJk26 PxtvcmtmUVWflqbvb3ysb19ilUWIrHA8lbNgIYt18gbNQjIkQwmZWjuINJaBzwQe9e wMgfYnL5x7YkWpE60L4E0L6sdX/rDEWeylCaAvmJoRFpY4vHEBuEJ7jfKTkNnRAYzj i/WHXPNuBohNQ== X-Session-ID: jOGtsZDkS-mlfb52bIpN8w X-Works-Send-Opt: M/YXjAJYjHmwKo2qKqJYFquqFNwkx0eFjAJYKg== X-Works-Smtp-Source: XdKXKxgXFqJZ+Hm9Kqt/+6E= Received: from JMW-Ubuntu.. ([14.38.141.199]) by cvnsmtp008.nm.naver.com with ESMTP id jOGtsZDkS-mlfb52bIpN8w for (version=TLSv1.3 cipher=TLS_AES_256_GCM_SHA384); Wed, 04 Feb 2026 13:13:55 -0000 From: Minu Jin To: gregkh@linuxfoundation.org, andy@kernel.org Cc: dan.carpenter@linaro.org, trohan2000@gmail.com, straube.linux@gmail.com, linux-staging@lists.linux.dev, linux-kernel@vger.kernel.org, Minu Jin Subject: [PATCH v6 1/5] staging: rtl8723bs: introduce kmemdup() where applicable Date: Wed, 4 Feb 2026 22:13:43 +0900 Message-ID: <20260204131347.3515949-2-s9430939@naver.com> X-Mailer: git-send-email 2.43.0 In-Reply-To: <20260204131347.3515949-1-s9430939@naver.com> References: <20260204131347.3515949-1-s9430939@naver.com> Precedence: bulk X-Mailing-List: linux-kernel@vger.kernel.org List-Id: List-Subscribe: List-Unsubscribe: MIME-Version: 1.0 Content-Transfer-Encoding: quoted-printable Content-Type: text/plain; charset="utf-8" Replace memory allocation followed by memcpy() with kmemdup() to simplify the code and improve readability. 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. Specifically, in OnAssocReq(), GFP_ATOMIC is used because the allocation is performed while holding a spin lock. Signed-off-by: Minu Jin Reviewed-by: Andy Shevchenko --- drivers/staging/rtl8723bs/core/rtw_ap.c | 14 ++++---------- drivers/staging/rtl8723bs/core/rtw_mlme.c | 3 +-- drivers/staging/rtl8723bs/core/rtw_mlme_ext.c | 7 +++---- drivers/staging/rtl8723bs/hal/rtl8723bs_recv.c | 4 +--- drivers/staging/rtl8723bs/os_dep/ioctl_cfg80211.c | 3 +-- drivers/staging/rtl8723bs/os_dep/osdep_service.c | 6 ++---- 6 files changed, 12 insertions(+), 25 deletions(-) diff --git a/drivers/staging/rtl8723bs/core/rtw_ap.c b/drivers/staging/rtl8= 723bs/core/rtw_ap.c index 477fe238add4..94f0e439abae 100644 --- a/drivers/staging/rtl8723bs/core/rtw_ap.c +++ b/drivers/staging/rtl8723bs/core/rtw_ap.c @@ -114,11 +114,8 @@ static void update_BCNTIM(struct adapter *padapter) dst_ie =3D pie + offset; } =20 - if (remainder_ielen > 0) { - pbackup_remainder_ie =3D rtw_malloc(remainder_ielen); - if (pbackup_remainder_ie && premainder_ie) - memcpy(pbackup_remainder_ie, premainder_ie, remainder_ielen); - } + if (premainder_ie && remainder_ielen) + pbackup_remainder_ie =3D kmemdup(premainder_ie, remainder_ielen, GFP_ATO= MIC); =20 *dst_ie++ =3D WLAN_EID_TIM; =20 @@ -1440,11 +1437,8 @@ static void update_bcn_wps_ie(struct adapter *padapt= er) =20 remainder_ielen =3D ielen - wps_offset - wps_ielen; =20 - if (remainder_ielen > 0) { - pbackup_remainder_ie =3D rtw_malloc(remainder_ielen); - if (pbackup_remainder_ie) - memcpy(pbackup_remainder_ie, premainder_ie, remainder_ielen); - } + if (premainder_ie && remainder_ielen) + pbackup_remainder_ie =3D kmemdup(premainder_ie, remainder_ielen, GFP_ATO= MIC); =20 wps_ielen =3D (uint)pwps_ie_src[1];/* to get ie data len */ if ((wps_offset + wps_ielen + 2 + remainder_ielen) <=3D MAX_IE_SZ) { diff --git a/drivers/staging/rtl8723bs/core/rtw_mlme.c b/drivers/staging/rt= l8723bs/core/rtw_mlme.c index 8e1e1c97f0c4..2bbf2b17e3ba 100644 --- a/drivers/staging/rtl8723bs/core/rtw_mlme.c +++ b/drivers/staging/rtl8723bs/core/rtw_mlme.c @@ -1337,10 +1337,9 @@ void rtw_stassoc_event_callback(struct adapter *adap= ter, u8 *pbuf) /* report to upper layer */ spin_lock_bh(&psta->lock); if (psta->passoc_req && psta->assoc_req_len > 0) { - passoc_req =3D rtw_zmalloc(psta->assoc_req_len); + passoc_req =3D kmemdup(psta->passoc_req, psta->assoc_req_len, GFP_ATOM= IC); if (passoc_req) { assoc_req_len =3D psta->assoc_req_len; - memcpy(passoc_req, psta->passoc_req, assoc_req_len); =20 kfree(psta->passoc_req); psta->passoc_req =3D NULL; diff --git a/drivers/staging/rtl8723bs/core/rtw_mlme_ext.c b/drivers/stagin= g/rtl8723bs/core/rtw_mlme_ext.c index 884fcce50d9c..c7c63009f779 100644 --- a/drivers/staging/rtl8723bs/core/rtw_mlme_ext.c +++ b/drivers/staging/rtl8723bs/core/rtw_mlme_ext.c @@ -1333,11 +1333,10 @@ unsigned int OnAssocReq(struct adapter *padapter, u= nion recv_frame *precv_frame) spin_lock_bh(&pstat->lock); kfree(pstat->passoc_req); pstat->assoc_req_len =3D 0; - pstat->passoc_req =3D rtw_zmalloc(pkt_len); - if (pstat->passoc_req) { - memcpy(pstat->passoc_req, pframe, pkt_len); + pstat->passoc_req =3D kmemdup(pframe, pkt_len, GFP_ATOMIC); + if (pstat->passoc_req) pstat->assoc_req_len =3D pkt_len; - } + spin_unlock_bh(&pstat->lock); =20 /* 3-(1) report sta add event */ diff --git a/drivers/staging/rtl8723bs/hal/rtl8723bs_recv.c b/drivers/stagi= ng/rtl8723bs/hal/rtl8723bs_recv.c index 399edfbf8ec6..0980fa4718b1 100644 --- a/drivers/staging/rtl8723bs/hal/rtl8723bs_recv.c +++ b/drivers/staging/rtl8723bs/hal/rtl8723bs_recv.c @@ -159,12 +159,10 @@ static void rtl8723bs_c2h_packet_handler(struct adapt= er *padapter, if (length =3D=3D 0) return; =20 - tmp =3D rtw_zmalloc(length); + tmp =3D kmemdup(pbuf, length, GFP_ATOMIC); if (!tmp) return; =20 - memcpy(tmp, pbuf, length); - res =3D rtw_c2h_packet_wk_cmd(padapter, tmp, length); =20 if (!res) diff --git a/drivers/staging/rtl8723bs/os_dep/ioctl_cfg80211.c b/drivers/st= aging/rtl8723bs/os_dep/ioctl_cfg80211.c index 476ab055e53e..3cc3faba8ce2 100644 --- a/drivers/staging/rtl8723bs/os_dep/ioctl_cfg80211.c +++ b/drivers/staging/rtl8723bs/os_dep/ioctl_cfg80211.c @@ -1163,11 +1163,10 @@ static int rtw_cfg80211_set_probe_req_wpsp2pie(stru= ct adapter *padapter, char *b pmlmepriv->wps_probe_req_ie =3D NULL; } =20 - pmlmepriv->wps_probe_req_ie =3D rtw_malloc(wps_ielen); + pmlmepriv->wps_probe_req_ie =3D kmemdup(wps_ie, wps_ielen, GFP_KERNEL); if (!pmlmepriv->wps_probe_req_ie) return -EINVAL; =20 - memcpy(pmlmepriv->wps_probe_req_ie, wps_ie, wps_ielen); pmlmepriv->wps_probe_req_ie_len =3D wps_ielen; } } diff --git a/drivers/staging/rtl8723bs/os_dep/osdep_service.c b/drivers/sta= ging/rtl8723bs/os_dep/osdep_service.c index 01ca423faf87..c999071cadde 100644 --- a/drivers/staging/rtl8723bs/os_dep/osdep_service.c +++ b/drivers/staging/rtl8723bs/os_dep/osdep_service.c @@ -129,11 +129,9 @@ void rtw_buf_update(u8 **buf, u32 *buf_len, u8 *src, u= 32 src_len) goto keep_ori; =20 /* duplicate src */ - dup =3D rtw_malloc(src_len); - if (dup) { + dup =3D kmemdup(src, src_len, GFP_ATOMIC); + if (dup) dup_len =3D src_len; - memcpy(dup, src, dup_len); - } =20 keep_ori: ori =3D *buf; --=20 2.43.0 From nobody Sun Feb 8 20:53:06 2026 Received: from cvsmtppost20.nm.naver.com (cvsmtppost20.nm.naver.com [114.111.35.236]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by smtp.subspace.kernel.org (Postfix) with ESMTPS id 9267E277CB8 for ; Wed, 4 Feb 2026 13:24:05 +0000 (UTC) Authentication-Results: smtp.subspace.kernel.org; arc=none smtp.client-ip=114.111.35.236 ARC-Seal: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1770211446; cv=none; b=C5A0QNWoLBYembhCfp3+pBLUM3MBINvGl/fyosz9SkTWGEZaEp76vtcm3wr5ejYNJ9WArYTO1UgorMKTpkVEVW0J1wtrNDlY6GPs8G3XscAwOkdyonR20nsoltD8glBjYhidLDEtoVrVO/T+J3qizAFcX71PskMfXKQ+GON0bOI= ARC-Message-Signature: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1770211446; c=relaxed/simple; bh=bBT9jft8CU3A9rxwflwTWCC3uc6vZzqLaEbd4NHRQ/4=; h=From:To:Cc:Subject:Date:Message-ID:In-Reply-To:References: MIME-Version; b=cZJtiDalBu2FHLPwlo5gFqBDzAaqFBHj03mk7bEefWdYVM1PShe3db1UqnxakQKqo8n5xwaX7um/Pp0XP/9vkEYSr387fz6P0xvrdi011zYni+H+QA1OaCFrpE6ANUs/y8hgHRUkPJVwO4a5knJj2Al/MxNoAUuYUNw+nwyjVzU= ARC-Authentication-Results: i=1; smtp.subspace.kernel.org; dmarc=pass (p=none dis=none) header.from=naver.com; spf=pass smtp.mailfrom=naver.com; dkim=pass (2048-bit key) header.d=naver.com header.i=@naver.com header.b=Bgs7EyoV; arc=none smtp.client-ip=114.111.35.236 Authentication-Results: smtp.subspace.kernel.org; dmarc=pass (p=none dis=none) header.from=naver.com Authentication-Results: smtp.subspace.kernel.org; spf=pass smtp.mailfrom=naver.com Authentication-Results: smtp.subspace.kernel.org; dkim=pass (2048-bit key) header.d=naver.com header.i=@naver.com header.b="Bgs7EyoV" Received: from cvsendbo018.nm ([10.112.20.46]) by cvsmtppost20.nm.naver.com with ESMTP id URW2u63nS9WvumUm+apqNQ for ; Wed, 04 Feb 2026 13:13:57 -0000 DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=naver.com; s=s20171208; t=1770210837; bh=bBT9jft8CU3A9rxwflwTWCC3uc6vZzqLaEbd4NHRQ/4=; h=From:To:Subject:Date:Message-ID:From:Subject:Feedback-ID: X-Works-Security; b=Bgs7EyoVlgWPzaJAL2EuvQnotEtcuIUhal4RcK1Tp5+f6JoR566a2DMgsMKFgymU3 nr0VE5HKPKQeBxo/139vqjfJDpPWlCmg8XWZ5hnTG/H4GJMcwOh9FZrhuAELS2pKhv 4V6IPWpbNXMm6blpXG0AzWCcWKiQZulVe6te9iDg0eurV7zclhKe4dHTkGUaN8UJgl c6WVJqj1WulSITZaQEnTWmPxYA4uJm4PvHgF4+onQFHzmnG9nVXDgf0bVQZ7oVTtQl 5TOslgUuYgOfb+wbqOzgn/G1QuEFSslZ6VOJUZe/QDg2sh+CDTtWzC1NnmJ+cMwgOi 5kNE+3nmApXnA== X-Session-ID: S2bbIcJWSAm0TivgL8UviQ X-Works-Send-Opt: p/Y/jAJYjHmwKo2qKqJYFquqFNwkx0eFjAJYKg== X-Works-Smtp-Source: XdbXKxgXFqJZ+HmrKqt/+6E= Received: from JMW-Ubuntu.. ([14.38.141.199]) by cvnsmtp008.nm.naver.com with ESMTP id S2bbIcJWSAm0TivgL8UviQ for (version=TLSv1.3 cipher=TLS_AES_256_GCM_SHA384); Wed, 04 Feb 2026 13:13:56 -0000 From: Minu Jin To: gregkh@linuxfoundation.org, andy@kernel.org Cc: dan.carpenter@linaro.org, trohan2000@gmail.com, straube.linux@gmail.com, linux-staging@lists.linux.dev, linux-kernel@vger.kernel.org, Minu Jin , Andy Shevchenko Subject: [PATCH v6 2/5] staging: rtl8723bs: replace rtw_malloc() with kmalloc() Date: Wed, 4 Feb 2026 22:13:44 +0900 Message-ID: <20260204131347.3515949-3-s9430939@naver.com> X-Mailer: git-send-email 2.43.0 In-Reply-To: <20260204131347.3515949-1-s9430939@naver.com> References: <20260204131347.3515949-1-s9430939@naver.com> Precedence: bulk X-Mailing-List: linux-kernel@vger.kernel.org List-Id: List-Subscribe: List-Unsubscribe: MIME-Version: 1.0 Content-Transfer-Encoding: quoted-printable Content-Type: text/plain; charset="utf-8" Replace the wrapper function rtw_malloc() with standard kmalloc(). Call sites were reviewed to use appropriate GFP flags (GFP_KERNEL or GFP_ATOMIC) based on the execution context. 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. Also, convert error return codes from -1 to -ENOMEM where appropriate. Signed-off-by: Minu Jin Reviewd-by: Andy Shevchenko Reviewed-by: Andy Shevchenko --- drivers/staging/rtl8723bs/core/rtw_cmd.c | 2 +- drivers/staging/rtl8723bs/core/rtw_mlme_ext.c | 2 +- .../staging/rtl8723bs/hal/rtl8723b_hal_init.c | 4 ++-- drivers/staging/rtl8723bs/hal/sdio_ops.c | 24 +++++++++---------- 4 files changed, 16 insertions(+), 16 deletions(-) diff --git a/drivers/staging/rtl8723bs/core/rtw_cmd.c b/drivers/staging/rtl= 8723bs/core/rtw_cmd.c index 27da987d881f..edec2295b52d 100644 --- a/drivers/staging/rtl8723bs/core/rtw_cmd.c +++ b/drivers/staging/rtl8723bs/core/rtw_cmd.c @@ -1695,7 +1695,7 @@ static void c2h_wk_callback(struct work_struct *work) /* This C2H event is read, clear it */ c2h_evt_clear(adapter); } else { - c2h_evt =3D rtw_malloc(16); + c2h_evt =3D kmalloc(16, GFP_ATOMIC); if (c2h_evt) { /* This C2H event is not read, read & clear now */ if (c2h_evt_read_88xx(adapter, c2h_evt) !=3D _SUCCESS) { diff --git a/drivers/staging/rtl8723bs/core/rtw_mlme_ext.c b/drivers/stagin= g/rtl8723bs/core/rtw_mlme_ext.c index c7c63009f779..46fd4be21e02 100644 --- a/drivers/staging/rtl8723bs/core/rtw_mlme_ext.c +++ b/drivers/staging/rtl8723bs/core/rtw_mlme_ext.c @@ -589,7 +589,7 @@ unsigned int OnBeacon(struct adapter *padapter, union r= ecv_frame *precv_frame) if (!memcmp(GetAddr3Ptr(pframe), get_my_bssid(&pmlmeinfo->network), ETH_A= LEN)) { if (pmlmeinfo->state & WIFI_FW_AUTH_NULL) { /* we should update current network before auth, or some IE is wrong */ - pbss =3D rtw_malloc(sizeof(struct wlan_bssid_ex)); + pbss =3D kmalloc(sizeof(*pbss), GFP_ATOMIC); if (pbss) { if (collect_bss_info(padapter, precv_frame, pbss) =3D=3D _SUCCESS) { update_network(&(pmlmepriv->cur_network.network), pbss, padapter, tru= e); diff --git a/drivers/staging/rtl8723bs/hal/rtl8723b_hal_init.c b/drivers/st= aging/rtl8723bs/hal/rtl8723b_hal_init.c index 054e2c2eab02..144094eeec30 100644 --- a/drivers/staging/rtl8723bs/hal/rtl8723b_hal_init.c +++ b/drivers/staging/rtl8723bs/hal/rtl8723b_hal_init.c @@ -642,7 +642,7 @@ static void hal_ReadEFuse_WiFi( if ((_offset + _size_byte) > EFUSE_MAX_MAP_LEN) return; =20 - efuseTbl =3D rtw_malloc(EFUSE_MAX_MAP_LEN); + efuseTbl =3D kmalloc(EFUSE_MAX_MAP_LEN, GFP_ATOMIC); if (!efuseTbl) return; =20 @@ -730,7 +730,7 @@ static void hal_ReadEFuse_BT( if ((_offset + _size_byte) > EFUSE_BT_MAP_LEN) return; =20 - efuseTbl =3D rtw_malloc(EFUSE_BT_MAP_LEN); + efuseTbl =3D kmalloc(EFUSE_BT_MAP_LEN, GFP_ATOMIC); if (!efuseTbl) return; =20 diff --git a/drivers/staging/rtl8723bs/hal/sdio_ops.c b/drivers/staging/rtl= 8723bs/hal/sdio_ops.c index 454f2fabc116..707e5879d943 100644 --- a/drivers/staging/rtl8723bs/hal/sdio_ops.c +++ b/drivers/staging/rtl8723bs/hal/sdio_ops.c @@ -181,7 +181,7 @@ static u32 sdio_read32(struct intf_hdl *intfhdl, u32 ad= dr) } else { u8 *tmpbuf; =20 - tmpbuf =3D rtw_malloc(8); + tmpbuf =3D kmalloc(8, GFP_ATOMIC); if (!tmpbuf) return SDIO_ERR_VAL32; =20 @@ -228,9 +228,9 @@ static s32 sdio_readN(struct intf_hdl *intfhdl, u32 add= r, u32 cnt, u8 *buf) =20 ftaddr &=3D ~(u16)0x3; n =3D cnt + shift; - tmpbuf =3D rtw_malloc(n); + tmpbuf =3D kmalloc(n, GFP_ATOMIC); if (!tmpbuf) - return -1; + return -ENOMEM; =20 err =3D sd_read(intfhdl, ftaddr, n, tmpbuf); if (!err) @@ -331,9 +331,9 @@ static s32 sdio_writeN(struct intf_hdl *intfhdl, u32 ad= dr, u32 cnt, u8 *buf) =20 ftaddr &=3D ~(u16)0x3; n =3D cnt + shift; - tmpbuf =3D rtw_malloc(n); + tmpbuf =3D kmalloc(n, GFP_ATOMIC); if (!tmpbuf) - return -1; + return -ENOMEM; err =3D sd_read(intfhdl, ftaddr, 4, tmpbuf); if (err) { kfree(tmpbuf); @@ -503,9 +503,9 @@ static s32 _sdio_local_read( return _sd_cmd52_read(intfhdl, addr, cnt, buf); =20 n =3D round_up(cnt, 4); - tmpbuf =3D rtw_malloc(n); + tmpbuf =3D kmalloc(n, GFP_ATOMIC); if (!tmpbuf) - return -1; + return -ENOMEM; =20 err =3D _sd_read(intfhdl, addr, n, tmpbuf); if (!err) @@ -544,9 +544,9 @@ s32 sdio_local_read( return sd_cmd52_read(intfhdl, addr, cnt, buf); =20 n =3D round_up(cnt, 4); - tmpbuf =3D rtw_malloc(n); + tmpbuf =3D kmalloc(n, GFP_ATOMIC); if (!tmpbuf) - return -1; + return -ENOMEM; =20 err =3D sd_read(intfhdl, addr, n, tmpbuf); if (!err) @@ -583,9 +583,9 @@ s32 sdio_local_write( ) return sd_cmd52_write(intfhdl, addr, cnt, buf); =20 - tmpbuf =3D rtw_malloc(cnt); + tmpbuf =3D kmalloc(cnt, GFP_ATOMIC); if (!tmpbuf) - return -1; + return -ENOMEM; =20 memcpy(tmpbuf, buf, cnt); =20 @@ -883,7 +883,7 @@ void sd_int_dpc(struct adapter *adapter) u8 *status; u32 addr; =20 - status =3D rtw_malloc(4); + status =3D kmalloc(4, GFP_ATOMIC); if (status) { addr =3D REG_TXDMA_STATUS; hal_sdio_get_cmd_addr_8723b(adapter, WLAN_IOREG_DEVICE_ID, addr, &addr); --=20 2.43.0 From nobody Sun Feb 8 20:53:06 2026 Received: from cvsmtppost17.nm.naver.com (cvsmtppost17.nm.naver.com [114.111.35.33]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by smtp.subspace.kernel.org (Postfix) with ESMTPS id 63BB03939C2 for ; Wed, 4 Feb 2026 13:14:06 +0000 (UTC) Authentication-Results: smtp.subspace.kernel.org; arc=none smtp.client-ip=114.111.35.33 ARC-Seal: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1770210847; cv=none; b=UrKVthiKZMtjIHzgwHBy7DUdK+BI+g0hE69JVwm5v2iOoUM0zCYyn3nG6/P+cLA2889FsDwr0EJA9VaGvq5E45Ld9NyUn6XYT7ts1UHrR70VdzGvHC4MRXaxsN90fLuKV7bJGuHQandnACblNayq74Eoa6g4sRzmqCSyE8khXyo= ARC-Message-Signature: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1770210847; c=relaxed/simple; bh=xcywdeHlUqd3a5Ei934GHsXs7ptdz/McVQDGE6SjVPY=; h=From:To:Cc:Subject:Date:Message-ID:In-Reply-To:References: MIME-Version; b=TNMMuK3SSZ8mUUVEHu/F6x2LIvHlWrt/fZiZ4AV8DCl3Yg/+sucqRavLEPP4X2takGJ/1opG4q0DIryD8BsHH6TBEdFrol0Mcn4xyUFIvq8iTe8wxvZPHxWQhIbwmW5GNjNmhlm9FEWQJyWSB8HSbtIPWIiEZ2rK6M8dwBRoBC8= ARC-Authentication-Results: i=1; smtp.subspace.kernel.org; dmarc=pass (p=none dis=none) header.from=naver.com; spf=pass smtp.mailfrom=naver.com; dkim=pass (2048-bit key) header.d=naver.com header.i=@naver.com header.b=ED8Ol3VF; arc=none smtp.client-ip=114.111.35.33 Authentication-Results: smtp.subspace.kernel.org; dmarc=pass (p=none dis=none) header.from=naver.com Authentication-Results: smtp.subspace.kernel.org; spf=pass smtp.mailfrom=naver.com Authentication-Results: smtp.subspace.kernel.org; dkim=pass (2048-bit key) header.d=naver.com header.i=@naver.com header.b="ED8Ol3VF" Received: from cvsendbo019.nm ([10.112.22.34]) by cvsmtppost17.nm.naver.com with ESMTP id WdCahaZwQ+G2XwY8sQqWBg for ; Wed, 04 Feb 2026 13:13:58 -0000 DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=naver.com; s=s20171208; t=1770210838; bh=xcywdeHlUqd3a5Ei934GHsXs7ptdz/McVQDGE6SjVPY=; h=From:To:Subject:Date:Message-ID:From:Subject:Feedback-ID: X-Works-Security; b=ED8Ol3VFVGvq+Ca3GCIL9KvzAyyt63zQz0i3SynHbExwFYLmDu3h0uTDJ4D3jJyyb JzlbEEgjSw35wZxdPrl8yOTk1YKRtK5zIQOQ0qEI8lGaqcHw+ZzIZDvyeV+AGlbJ7e 8qW4AWx1S9PJCacU6gbS7ZZrMd0sNQyoMYims4TmW/Q4H31/fJTwXs1Tm88stx7uP3 yE3hQH9uO8xJhwji0+/EsAE8xlnuA2dElkPd1dPv/Kx8Sz4l2bPZFiiBKQVXeitt8f 6yselHfB1L1l0uOLBKheMjp5bNs5NCU7qFYFjqAk+LcmKnik0fQmxHEx7FB8FAR78Q wqm1ua2kEoxyw== X-Session-ID: -TH0GRjIS-2udXbVw1hxUQ X-Works-Send-Opt: p/Y/jAJYjHmwKo2qKqJYFquqFNwkx0eFjAJYKg== X-Works-Smtp-Source: XdYXKxgXFqJZ+Hm/Kqt/+6E= Received: from JMW-Ubuntu.. ([14.38.141.199]) by cvnsmtp008.nm.naver.com with ESMTP id -TH0GRjIS-2udXbVw1hxUQ for (version=TLSv1.3 cipher=TLS_AES_256_GCM_SHA384); Wed, 04 Feb 2026 13:13:58 -0000 From: Minu Jin To: gregkh@linuxfoundation.org, andy@kernel.org Cc: dan.carpenter@linaro.org, trohan2000@gmail.com, straube.linux@gmail.com, linux-staging@lists.linux.dev, linux-kernel@vger.kernel.org, Minu Jin , Andy Shevchenko Subject: [PATCH v6 3/5] staging: rtl8723bs: replace rtw_zmalloc() with kzalloc() Date: Wed, 4 Feb 2026 22:13:45 +0900 Message-ID: <20260204131347.3515949-4-s9430939@naver.com> X-Mailer: git-send-email 2.43.0 In-Reply-To: <20260204131347.3515949-1-s9430939@naver.com> References: <20260204131347.3515949-1-s9430939@naver.com> Precedence: bulk X-Mailing-List: linux-kernel@vger.kernel.org List-Id: List-Subscribe: List-Unsubscribe: MIME-Version: 1.0 Content-Transfer-Encoding: quoted-printable Content-Type: text/plain; charset="utf-8" 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 Reviewed-by: Andy Shevchenko --- drivers/staging/rtl8723bs/core/rtw_ap.c | 8 +- drivers/staging/rtl8723bs/core/rtw_cmd.c | 81 +++++++++---------- drivers/staging/rtl8723bs/core/rtw_mlme.c | 10 +-- drivers/staging/rtl8723bs/core/rtw_mlme_ext.c | 36 ++++----- drivers/staging/rtl8723bs/core/rtw_recv.c | 2 +- drivers/staging/rtl8723bs/core/rtw_security.c | 3 +- .../staging/rtl8723bs/core/rtw_wlan_util.c | 2 +- drivers/staging/rtl8723bs/core/rtw_xmit.c | 8 +- .../staging/rtl8723bs/hal/rtl8723bs_recv.c | 2 +- drivers/staging/rtl8723bs/hal/sdio_ops.c | 2 +- .../staging/rtl8723bs/os_dep/ioctl_cfg80211.c | 26 +++--- drivers/staging/rtl8723bs/os_dep/os_intfs.c | 2 +- .../staging/rtl8723bs/os_dep/osdep_service.c | 9 +-- drivers/staging/rtl8723bs/os_dep/xmit_linux.c | 2 +- 14 files changed, 90 insertions(+), 103 deletions(-) diff --git a/drivers/staging/rtl8723bs/core/rtw_ap.c b/drivers/staging/rtl8= 723bs/core/rtw_ap.c index 94f0e439abae..9feba54181e6 100644 --- a/drivers/staging/rtl8723bs/core/rtw_ap.c +++ b/drivers/staging/rtl8723bs/core/rtw_ap.c @@ -1227,13 +1227,13 @@ u8 rtw_ap_set_pairwise_key(struct adapter *padapter= , struct sta_info *psta) struct cmd_priv *pcmdpriv =3D &padapter->cmdpriv; u8 res =3D _SUCCESS; =20 - ph2c =3D rtw_zmalloc(sizeof(struct cmd_obj)); + ph2c =3D kzalloc(sizeof(*ph2c), GFP_KERNEL); if (!ph2c) { res =3D _FAIL; goto exit; } =20 - psetstakey_para =3D rtw_zmalloc(sizeof(struct set_stakey_parm)); + psetstakey_para =3D kzalloc(sizeof(*psetstakey_para), GFP_KERNEL); if (!psetstakey_para) { kfree(ph2c); res =3D _FAIL; @@ -1267,12 +1267,12 @@ static int rtw_ap_set_key(struct adapter *padapter, struct cmd_priv *pcmdpriv =3D &padapter->cmdpriv; int res =3D _SUCCESS; =20 - pcmd =3D rtw_zmalloc(sizeof(struct cmd_obj)); + pcmd =3D kzalloc(sizeof(*pcmd), GFP_KERNEL); if (!pcmd) { res =3D _FAIL; goto exit; } - psetkeyparm =3D rtw_zmalloc(sizeof(struct setkey_parm)); + psetkeyparm =3D kzalloc(sizeof(*psetkeyparm), GFP_KERNEL); if (!psetkeyparm) { kfree(pcmd); res =3D _FAIL; diff --git a/drivers/staging/rtl8723bs/core/rtw_cmd.c b/drivers/staging/rtl= 8723bs/core/rtw_cmd.c index edec2295b52d..b2e7f479f72b 100644 --- a/drivers/staging/rtl8723bs/core/rtw_cmd.c +++ b/drivers/staging/rtl8723bs/core/rtw_cmd.c @@ -171,15 +171,13 @@ int rtw_init_cmd_priv(struct cmd_priv *pcmdpriv) =20 pcmdpriv->cmd_seq =3D 1; =20 - pcmdpriv->cmd_allocated_buf =3D rtw_zmalloc(MAX_CMDSZ + CMDBUFF_ALIGN_SZ); - + pcmdpriv->cmd_allocated_buf =3D kzalloc(MAX_CMDSZ + CMDBUFF_ALIGN_SZ, GFP= _ATOMIC); if (!pcmdpriv->cmd_allocated_buf) return -ENOMEM; =20 pcmdpriv->cmd_buf =3D PTR_ALIGN(pcmdpriv->cmd_allocated_buf, CMDBUFF_ALIG= N_SZ); =20 - pcmdpriv->rsp_allocated_buf =3D rtw_zmalloc(MAX_RSPSZ + 4); - + pcmdpriv->rsp_allocated_buf =3D kzalloc(MAX_RSPSZ + 4, GFP_ATOMIC); if (!pcmdpriv->rsp_allocated_buf) { kfree(pcmdpriv->cmd_allocated_buf); return -ENOMEM; @@ -535,11 +533,11 @@ u8 rtw_sitesurvey_cmd(struct adapter *padapter, stru= ct ndis_802_11_ssid *ssid, if (check_fwstate(pmlmepriv, _FW_LINKED)) rtw_lps_ctrl_wk_cmd(padapter, LPS_CTRL_SCAN, 1); =20 - ph2c =3D rtw_zmalloc(sizeof(struct cmd_obj)); + ph2c =3D kzalloc(sizeof(*ph2c), GFP_ATOMIC); if (!ph2c) return _FAIL; =20 - psurveyPara =3D rtw_zmalloc(sizeof(struct sitesurvey_parm)); + psurveyPara =3D kzalloc(sizeof(*psurveyPara), GFP_ATOMIC); if (!psurveyPara) { kfree(ph2c); return _FAIL; @@ -603,7 +601,7 @@ u8 rtw_createbss_cmd(struct adapter *padapter) struct wlan_bssid_ex *pdev_network =3D &padapter->registrypriv.dev_networ= k; u8 res =3D _SUCCESS; =20 - pcmd =3D rtw_zmalloc(sizeof(struct cmd_obj)); + pcmd =3D kzalloc(sizeof(*pcmd), GFP_ATOMIC); if (!pcmd) { res =3D _FAIL; goto exit; @@ -636,7 +634,7 @@ int rtw_startbss_cmd(struct adapter *padapter, int fla= gs) start_bss_network(padapter); } else { /* need enqueue, prepare cmd_obj and enqueue */ - pcmd =3D rtw_zmalloc(sizeof(struct cmd_obj)); + pcmd =3D kzalloc(sizeof(*pcmd), GFP_KERNEL); if (!pcmd) { res =3D _FAIL; goto exit; @@ -688,7 +686,7 @@ u8 rtw_joinbss_cmd(struct adapter *padapter, struct wl= an_network *pnetwork) u32 tmp_len; u8 *ptmp =3D NULL; =20 - pcmd =3D rtw_zmalloc(sizeof(struct cmd_obj)); + pcmd =3D kzalloc(sizeof(*pcmd), GFP_KERNEL); if (!pcmd) { res =3D _FAIL; goto exit; @@ -797,7 +795,7 @@ u8 rtw_disassoc_cmd(struct adapter *padapter, u32 deaut= h_timeout_ms, bool enqueu u8 res =3D _SUCCESS; =20 /* prepare cmd parameter */ - param =3D rtw_zmalloc(sizeof(*param)); + param =3D kzalloc(sizeof(*param), GFP_KERNEL); if (!param) { res =3D _FAIL; goto exit; @@ -806,7 +804,7 @@ u8 rtw_disassoc_cmd(struct adapter *padapter, u32 deaut= h_timeout_ms, bool enqueu =20 if (enqueue) { /* need enqueue, prepare cmd_obj and enqueue */ - cmdobj =3D rtw_zmalloc(sizeof(*cmdobj)); + cmdobj =3D kzalloc(sizeof(*cmdobj), GFP_KERNEL); if (!cmdobj) { res =3D _FAIL; kfree(param); @@ -833,8 +831,7 @@ u8 rtw_setopmode_cmd(struct adapter *padapter, enum nd= is_802_11_network_infrast struct cmd_priv *pcmdpriv =3D &padapter->cmdpriv; u8 res =3D _SUCCESS; =20 - psetop =3D rtw_zmalloc(sizeof(struct setopmode_parm)); - + psetop =3D kzalloc(sizeof(*psetop), GFP_KERNEL); if (!psetop) { res =3D _FAIL; goto exit; @@ -842,7 +839,7 @@ u8 rtw_setopmode_cmd(struct adapter *padapter, enum nd= is_802_11_network_infrast psetop->mode =3D (u8)networktype; =20 if (enqueue) { - ph2c =3D rtw_zmalloc(sizeof(struct cmd_obj)); + ph2c =3D kzalloc(sizeof(*ph2c), GFP_KERNEL); if (!ph2c) { kfree(psetop); res =3D _FAIL; @@ -869,7 +866,7 @@ u8 rtw_setstakey_cmd(struct adapter *padapter, struct s= ta_info *sta, u8 unicast_ struct security_priv *psecuritypriv =3D &padapter->securitypriv; u8 res =3D _SUCCESS; =20 - psetstakey_para =3D rtw_zmalloc(sizeof(struct set_stakey_parm)); + psetstakey_para =3D kzalloc(sizeof(*psetstakey_para), GFP_KERNEL); if (!psetstakey_para) { res =3D _FAIL; goto exit; @@ -891,14 +888,14 @@ u8 rtw_setstakey_cmd(struct adapter *padapter, struct= sta_info *sta, u8 unicast_ padapter->securitypriv.busetkipkey =3D true; =20 if (enqueue) { - ph2c =3D rtw_zmalloc(sizeof(struct cmd_obj)); + ph2c =3D kzalloc(sizeof(*ph2c), GFP_KERNEL); if (!ph2c) { kfree(psetstakey_para); res =3D _FAIL; goto exit; } =20 - psetstakey_rsp =3D rtw_zmalloc(sizeof(struct set_stakey_rsp)); + psetstakey_rsp =3D kzalloc(sizeof(*psetstakey_rsp), GFP_KERNEL); if (!psetstakey_rsp) { kfree(ph2c); kfree(psetstakey_para); @@ -936,20 +933,20 @@ u8 rtw_clearstakey_cmd(struct adapter *padapter, stru= ct sta_info *sta, u8 enqueu rtw_camid_free(padapter, cam_id); } } else { - ph2c =3D rtw_zmalloc(sizeof(struct cmd_obj)); + ph2c =3D kzalloc(sizeof(*ph2c), GFP_KERNEL); if (!ph2c) { res =3D _FAIL; goto exit; } =20 - psetstakey_para =3D rtw_zmalloc(sizeof(struct set_stakey_parm)); + psetstakey_para =3D kzalloc(sizeof(*psetstakey_para), GFP_KERNEL); if (!psetstakey_para) { kfree(ph2c); res =3D _FAIL; goto exit; } =20 - psetstakey_rsp =3D rtw_zmalloc(sizeof(struct set_stakey_rsp)); + psetstakey_rsp =3D kzalloc(sizeof(*psetstakey_rsp), GFP_KERNEL); if (!psetstakey_rsp) { kfree(ph2c); kfree(psetstakey_para); @@ -979,13 +976,13 @@ u8 rtw_addbareq_cmd(struct adapter *padapter, u8 tid,= u8 *addr) =20 u8 res =3D _SUCCESS; =20 - ph2c =3D rtw_zmalloc(sizeof(struct cmd_obj)); + ph2c =3D kzalloc(sizeof(*ph2c), GFP_ATOMIC); if (!ph2c) { res =3D _FAIL; goto exit; } =20 - paddbareq_parm =3D rtw_zmalloc(sizeof(struct addBaReq_parm)); + paddbareq_parm =3D kzalloc(sizeof(*paddbareq_parm), GFP_ATOMIC); if (!paddbareq_parm) { kfree(ph2c); res =3D _FAIL; @@ -1012,13 +1009,13 @@ u8 rtw_reset_securitypriv_cmd(struct adapter *padap= ter) struct cmd_priv *pcmdpriv =3D &padapter->cmdpriv; u8 res =3D _SUCCESS; =20 - ph2c =3D rtw_zmalloc(sizeof(struct cmd_obj)); + ph2c =3D kzalloc(sizeof(*ph2c), GFP_ATOMIC); if (!ph2c) { res =3D _FAIL; goto exit; } =20 - pdrvextra_cmd_parm =3D rtw_zmalloc(sizeof(struct drvextra_cmd_parm)); + pdrvextra_cmd_parm =3D kzalloc(sizeof(*pdrvextra_cmd_parm), GFP_ATOMIC); if (!pdrvextra_cmd_parm) { kfree(ph2c); res =3D _FAIL; @@ -1045,13 +1042,13 @@ u8 rtw_free_assoc_resources_cmd(struct adapter *pad= apter) struct cmd_priv *pcmdpriv =3D &padapter->cmdpriv; u8 res =3D _SUCCESS; =20 - ph2c =3D rtw_zmalloc(sizeof(struct cmd_obj)); + ph2c =3D kzalloc(sizeof(*ph2c), GFP_ATOMIC); if (!ph2c) { res =3D _FAIL; goto exit; } =20 - pdrvextra_cmd_parm =3D rtw_zmalloc(sizeof(struct drvextra_cmd_parm)); + pdrvextra_cmd_parm =3D kzalloc(sizeof(*pdrvextra_cmd_parm), GFP_ATOMIC); if (!pdrvextra_cmd_parm) { kfree(ph2c); res =3D _FAIL; @@ -1079,13 +1076,13 @@ u8 rtw_dynamic_chk_wk_cmd(struct adapter *padapter) u8 res =3D _SUCCESS; =20 /* only primary padapter does this cmd */ - ph2c =3D rtw_zmalloc(sizeof(struct cmd_obj)); + ph2c =3D kzalloc(sizeof(*ph2c), GFP_ATOMIC); if (!ph2c) { res =3D _FAIL; goto exit; } =20 - pdrvextra_cmd_parm =3D rtw_zmalloc(sizeof(struct drvextra_cmd_parm)); + pdrvextra_cmd_parm =3D kzalloc(sizeof(*pdrvextra_cmd_parm), GFP_ATOMIC); if (!pdrvextra_cmd_parm) { kfree(ph2c); res =3D _FAIL; @@ -1319,13 +1316,13 @@ u8 rtw_lps_ctrl_wk_cmd(struct adapter *padapter, u8= lps_ctrl_type, u8 enqueue) u8 res =3D _SUCCESS; =20 if (enqueue) { - ph2c =3D rtw_zmalloc(sizeof(struct cmd_obj)); + ph2c =3D kzalloc(sizeof(*ph2c), GFP_ATOMIC); if (!ph2c) { res =3D _FAIL; goto exit; } =20 - pdrvextra_cmd_parm =3D rtw_zmalloc(sizeof(struct drvextra_cmd_parm)); + pdrvextra_cmd_parm =3D kzalloc(sizeof(*pdrvextra_cmd_parm), GFP_ATOMIC); if (!pdrvextra_cmd_parm) { kfree(ph2c); res =3D _FAIL; @@ -1360,13 +1357,13 @@ u8 rtw_dm_in_lps_wk_cmd(struct adapter *padapter) struct cmd_priv *pcmdpriv =3D &padapter->cmdpriv; u8 res =3D _SUCCESS; =20 - ph2c =3D rtw_zmalloc(sizeof(struct cmd_obj)); + ph2c =3D kzalloc(sizeof(*ph2c), GFP_ATOMIC); if (!ph2c) { res =3D _FAIL; goto exit; } =20 - pdrvextra_cmd_parm =3D rtw_zmalloc(sizeof(struct drvextra_cmd_parm)); + pdrvextra_cmd_parm =3D kzalloc(sizeof(*pdrvextra_cmd_parm), GFP_ATOMIC); if (!pdrvextra_cmd_parm) { kfree(ph2c); res =3D _FAIL; @@ -1422,13 +1419,13 @@ u8 rtw_dm_ra_mask_wk_cmd(struct adapter *padapter, = u8 *psta) struct cmd_priv *pcmdpriv =3D &padapter->cmdpriv; u8 res =3D _SUCCESS; =20 - ph2c =3D rtw_zmalloc(sizeof(struct cmd_obj)); + ph2c =3D kzalloc(sizeof(*ph2c), GFP_ATOMIC); if (!ph2c) { res =3D _FAIL; goto exit; } =20 - pdrvextra_cmd_parm =3D rtw_zmalloc(sizeof(struct drvextra_cmd_parm)); + pdrvextra_cmd_parm =3D kzalloc(sizeof(*pdrvextra_cmd_parm), GFP_ATOMIC); if (!pdrvextra_cmd_parm) { kfree(ph2c); res =3D _FAIL; @@ -1456,13 +1453,13 @@ u8 rtw_ps_cmd(struct adapter *padapter) struct cmd_priv *pcmdpriv =3D &padapter->cmdpriv; u8 res =3D _SUCCESS; =20 - ppscmd =3D rtw_zmalloc(sizeof(struct cmd_obj)); + ppscmd =3D kzalloc(sizeof(*ppscmd), GFP_ATOMIC); if (!ppscmd) { res =3D _FAIL; goto exit; } =20 - pdrvextra_cmd_parm =3D rtw_zmalloc(sizeof(struct drvextra_cmd_parm)); + pdrvextra_cmd_parm =3D kzalloc(sizeof(*pdrvextra_cmd_parm), GFP_ATOMIC); if (!pdrvextra_cmd_parm) { kfree(ppscmd); res =3D _FAIL; @@ -1526,13 +1523,13 @@ u8 rtw_chk_hi_queue_cmd(struct adapter *padapter) struct cmd_priv *pcmdpriv =3D &padapter->cmdpriv; u8 res =3D _SUCCESS; =20 - ph2c =3D rtw_zmalloc(sizeof(struct cmd_obj)); + ph2c =3D kzalloc(sizeof(*ph2c), GFP_ATOMIC); if (!ph2c) { res =3D _FAIL; goto exit; } =20 - pdrvextra_cmd_parm =3D rtw_zmalloc(sizeof(struct drvextra_cmd_parm)); + pdrvextra_cmd_parm =3D kzalloc(sizeof(*pdrvextra_cmd_parm), GFP_ATOMIC); if (!pdrvextra_cmd_parm) { kfree(ph2c); res =3D _FAIL; @@ -1618,13 +1615,13 @@ u8 rtw_c2h_packet_wk_cmd(struct adapter *padapter, = u8 *pbuf, u16 length) struct cmd_priv *pcmdpriv =3D &padapter->cmdpriv; u8 res =3D _SUCCESS; =20 - ph2c =3D rtw_zmalloc(sizeof(struct cmd_obj)); + ph2c =3D kzalloc(sizeof(*ph2c), GFP_ATOMIC); if (!ph2c) { res =3D _FAIL; goto exit; } =20 - pdrvextra_cmd_parm =3D rtw_zmalloc(sizeof(struct drvextra_cmd_parm)); + pdrvextra_cmd_parm =3D kzalloc(sizeof(*pdrvextra_cmd_parm), GFP_ATOMIC); if (!pdrvextra_cmd_parm) { kfree(ph2c); res =3D _FAIL; @@ -1653,13 +1650,13 @@ u8 rtw_c2h_wk_cmd(struct adapter *padapter, u8 *c2h= _evt) struct cmd_priv *pcmdpriv =3D &padapter->cmdpriv; u8 res =3D _SUCCESS; =20 - ph2c =3D rtw_zmalloc(sizeof(struct cmd_obj)); + ph2c =3D kzalloc(sizeof(*ph2c), GFP_KERNEL); if (!ph2c) { res =3D _FAIL; goto exit; } =20 - pdrvextra_cmd_parm =3D rtw_zmalloc(sizeof(struct drvextra_cmd_parm)); + pdrvextra_cmd_parm =3D kzalloc(sizeof(*pdrvextra_cmd_parm), GFP_KERNEL); if (!pdrvextra_cmd_parm) { kfree(ph2c); res =3D _FAIL; diff --git a/drivers/staging/rtl8723bs/core/rtw_mlme.c b/drivers/staging/rt= l8723bs/core/rtw_mlme.c index 2bbf2b17e3ba..a7d7f175cbf3 100644 --- a/drivers/staging/rtl8723bs/core/rtw_mlme.c +++ b/drivers/staging/rtl8723bs/core/rtw_mlme.c @@ -1886,13 +1886,13 @@ signed int rtw_set_auth(struct adapter *adapter, st= ruct security_priv *psecurity struct cmd_priv *pcmdpriv =3D &adapter->cmdpriv; signed int res =3D _SUCCESS; =20 - pcmd =3D rtw_zmalloc(sizeof(struct cmd_obj)); + pcmd =3D kzalloc(sizeof(*pcmd), GFP_KERNEL); if (!pcmd) { res =3D _FAIL; /* try again */ goto exit; } =20 - psetauthparm =3D rtw_zmalloc(sizeof(struct setauth_parm)); + psetauthparm =3D kzalloc(sizeof(*psetauthparm), GFP_KERNEL); if (!psetauthparm) { kfree(pcmd); res =3D _FAIL; @@ -1923,7 +1923,7 @@ signed int rtw_set_key(struct adapter *adapter, struc= t security_priv *psecurityp struct cmd_priv *pcmdpriv =3D &adapter->cmdpriv; signed int res =3D _SUCCESS; =20 - psetkeyparm =3D rtw_zmalloc(sizeof(struct setkey_parm)); + psetkeyparm =3D kzalloc(sizeof(*psetkeyparm), GFP_KERNEL); if (!psetkeyparm) { res =3D _FAIL; goto exit; @@ -1965,7 +1965,7 @@ signed int rtw_set_key(struct adapter *adapter, struc= t security_priv *psecurityp } =20 if (enqueue) { - pcmd =3D rtw_zmalloc(sizeof(struct cmd_obj)); + pcmd =3D kzalloc(sizeof(*pcmd), GFP_KERNEL); if (!pcmd) { kfree(psetkeyparm); res =3D _FAIL; /* try again */ @@ -2072,7 +2072,7 @@ static void rtw_report_sec_ie(struct adapter *adapter= , u8 authmode, u8 *sec_ie) =20 buff =3D NULL; if (authmode =3D=3D WLAN_EID_VENDOR_SPECIFIC) { - buff =3D rtw_zmalloc(IW_CUSTOM_MAX); + buff =3D kzalloc(IW_CUSTOM_MAX, GFP_ATOMIC); if (!buff) return; =20 diff --git a/drivers/staging/rtl8723bs/core/rtw_mlme_ext.c b/drivers/stagin= g/rtl8723bs/core/rtw_mlme_ext.c index 46fd4be21e02..2a528d1adb0c 100644 --- a/drivers/staging/rtl8723bs/core/rtw_mlme_ext.c +++ b/drivers/staging/rtl8723bs/core/rtw_mlme_ext.c @@ -2346,7 +2346,7 @@ void issue_probersp(struct adapter *padapter, unsigne= d char *da, u8 is_valid_p2p u8 *buf; u8 *ies =3D pmgntframe->buf_addr+TXDESC_OFFSET+sizeof(struct ieee80211_= hdr_3addr); =20 - buf =3D rtw_zmalloc(MAX_IE_SZ); + buf =3D kzalloc(MAX_IE_SZ, GFP_ATOMIC); if (!buf) return; =20 @@ -4395,12 +4395,12 @@ void report_survey_event(struct adapter *padapter, = union recv_frame *precv_frame pmlmeext =3D &padapter->mlmeextpriv; pcmdpriv =3D &padapter->cmdpriv; =20 - pcmd_obj =3D rtw_zmalloc(sizeof(struct cmd_obj)); + pcmd_obj =3D kzalloc(sizeof(*pcmd_obj), GFP_ATOMIC); if (!pcmd_obj) return; =20 cmdsz =3D (sizeof(struct survey_event) + sizeof(struct C2HEvent_Header)); - pevtcmd =3D rtw_zmalloc(cmdsz); + pevtcmd =3D kzalloc(cmdsz, GFP_ATOMIC); if (!pevtcmd) { kfree(pcmd_obj); return; @@ -4448,12 +4448,12 @@ void report_surveydone_event(struct adapter *padapt= er) struct mlme_ext_priv *pmlmeext =3D &padapter->mlmeextpriv; struct cmd_priv *pcmdpriv =3D &padapter->cmdpriv; =20 - pcmd_obj =3D rtw_zmalloc(sizeof(struct cmd_obj)); + pcmd_obj =3D kzalloc(sizeof(*pcmd_obj), GFP_ATOMIC); if (!pcmd_obj) return; =20 cmdsz =3D (sizeof(struct surveydone_event) + sizeof(struct C2HEvent_Heade= r)); - pevtcmd =3D rtw_zmalloc(cmdsz); + pevtcmd =3D kzalloc(cmdsz, GFP_ATOMIC); if (!pevtcmd) { kfree(pcmd_obj); return; @@ -4493,12 +4493,12 @@ void report_join_res(struct adapter *padapter, int = res) struct mlme_ext_info *pmlmeinfo =3D &pmlmeext->mlmext_info; struct cmd_priv *pcmdpriv =3D &padapter->cmdpriv; =20 - pcmd_obj =3D rtw_zmalloc(sizeof(struct cmd_obj)); + pcmd_obj =3D kzalloc(sizeof(*pcmd_obj), GFP_ATOMIC); if (!pcmd_obj) return; =20 cmdsz =3D (sizeof(struct joinbss_event) + sizeof(struct C2HEvent_Header)); - pevtcmd =3D rtw_zmalloc(cmdsz); + pevtcmd =3D kzalloc(cmdsz, GFP_ATOMIC); if (!pevtcmd) { kfree(pcmd_obj); return; @@ -4542,12 +4542,12 @@ void report_wmm_edca_update(struct adapter *padapte= r) struct mlme_ext_priv *pmlmeext =3D &padapter->mlmeextpriv; struct cmd_priv *pcmdpriv =3D &padapter->cmdpriv; =20 - pcmd_obj =3D rtw_zmalloc(sizeof(struct cmd_obj)); + pcmd_obj =3D kzalloc(sizeof(*pcmd_obj), GFP_ATOMIC); if (!pcmd_obj) return; =20 cmdsz =3D (sizeof(struct wmm_event) + sizeof(struct C2HEvent_Header)); - pevtcmd =3D rtw_zmalloc(cmdsz); + pevtcmd =3D kzalloc(cmdsz, GFP_ATOMIC); if (!pevtcmd) { kfree(pcmd_obj); return; @@ -4588,12 +4588,12 @@ void report_del_sta_event(struct adapter *padapter,= unsigned char *MacAddr, unsi struct mlme_ext_priv *pmlmeext =3D &padapter->mlmeextpriv; struct cmd_priv *pcmdpriv =3D &padapter->cmdpriv; =20 - pcmd_obj =3D rtw_zmalloc(sizeof(struct cmd_obj)); + pcmd_obj =3D kzalloc(sizeof(*pcmd_obj), GFP_ATOMIC); if (!pcmd_obj) return; =20 cmdsz =3D (sizeof(struct stadel_event) + sizeof(struct C2HEvent_Header)); - pevtcmd =3D rtw_zmalloc(cmdsz); + pevtcmd =3D kzalloc(cmdsz, GFP_ATOMIC); if (!pevtcmd) { kfree(pcmd_obj); return; @@ -4639,12 +4639,12 @@ void report_add_sta_event(struct adapter *padapter,= unsigned char *MacAddr, int struct mlme_ext_priv *pmlmeext =3D &padapter->mlmeextpriv; struct cmd_priv *pcmdpriv =3D &padapter->cmdpriv; =20 - pcmd_obj =3D rtw_zmalloc(sizeof(struct cmd_obj)); + pcmd_obj =3D kzalloc(sizeof(*pcmd_obj), GFP_ATOMIC); if (!pcmd_obj) return; =20 cmdsz =3D (sizeof(struct stassoc_event) + sizeof(struct C2HEvent_Header)); - pevtcmd =3D rtw_zmalloc(cmdsz); + pevtcmd =3D kzalloc(cmdsz, GFP_ATOMIC); if (!pevtcmd) { kfree(pcmd_obj); return; @@ -5093,11 +5093,11 @@ void survey_timer_hdl(struct timer_list *t) pmlmeext->scan_abort =3D false;/* reset */ } =20 - ph2c =3D rtw_zmalloc(sizeof(struct cmd_obj)); + ph2c =3D kzalloc(sizeof(*ph2c), GFP_ATOMIC); if (!ph2c) return; =20 - psurveyPara =3D rtw_zmalloc(sizeof(struct sitesurvey_parm)); + psurveyPara =3D kzalloc(sizeof(*psurveyPara), GFP_ATOMIC); if (!psurveyPara) { kfree(ph2c); return; @@ -5708,7 +5708,7 @@ u8 chk_bmc_sleepq_cmd(struct adapter *padapter) struct cmd_priv *pcmdpriv =3D &(padapter->cmdpriv); u8 res =3D _SUCCESS; =20 - ph2c =3D rtw_zmalloc(sizeof(struct cmd_obj)); + ph2c =3D kzalloc(sizeof(*ph2c), GFP_ATOMIC); if (!ph2c) { res =3D _FAIL; goto exit; @@ -5732,13 +5732,13 @@ u8 set_tx_beacon_cmd(struct adapter *padapter) u8 res =3D _SUCCESS; int len_diff =3D 0; =20 - ph2c =3D rtw_zmalloc(sizeof(struct cmd_obj)); + ph2c =3D kzalloc(sizeof(*ph2c), GFP_ATOMIC); if (!ph2c) { res =3D _FAIL; goto exit; } =20 - ptxBeacon_parm =3D rtw_zmalloc(sizeof(struct Tx_Beacon_param)); + ptxBeacon_parm =3D kzalloc(sizeof(*ptxBeacon_parm), GFP_ATOMIC); if (!ptxBeacon_parm) { kfree(ph2c); res =3D _FAIL; diff --git a/drivers/staging/rtl8723bs/core/rtw_recv.c b/drivers/staging/rt= l8723bs/core/rtw_recv.c index 0a8725686721..f599a867eb0b 100644 --- a/drivers/staging/rtl8723bs/core/rtw_recv.c +++ b/drivers/staging/rtl8723bs/core/rtw_recv.c @@ -1425,7 +1425,7 @@ static signed int validate_80211w_mgmt(struct adapter= *adapter, union recv_frame memcpy(pattrib->ta, GetAddr2Ptr(ptr), ETH_ALEN); /* actual management data frame body */ data_len =3D pattrib->pkt_len - pattrib->hdrlen - pattrib->iv_len - pat= trib->icv_len; - mgmt_DATA =3D rtw_zmalloc(data_len); + mgmt_DATA =3D kzalloc(data_len, GFP_ATOMIC); if (!mgmt_DATA) goto validate_80211w_fail; precv_frame =3D decryptor(adapter, precv_frame); diff --git a/drivers/staging/rtl8723bs/core/rtw_security.c b/drivers/stagin= g/rtl8723bs/core/rtw_security.c index 86e54454145a..bd179daab35e 100644 --- a/drivers/staging/rtl8723bs/core/rtw_security.c +++ b/drivers/staging/rtl8723bs/core/rtw_security.c @@ -1316,8 +1316,7 @@ u32 rtw_BIP_verify(struct adapter *padapter, u8 *prec= vframe) __le64 le_tmp64; =20 ori_len =3D pattrib->pkt_len - WLAN_HDR_A3_LEN + BIP_AAD_SIZE; - BIP_AAD =3D rtw_zmalloc(ori_len); - + BIP_AAD =3D kzalloc(ori_len, GFP_KERNEL); if (!BIP_AAD) return _FAIL; =20 diff --git a/drivers/staging/rtl8723bs/core/rtw_wlan_util.c b/drivers/stagi= ng/rtl8723bs/core/rtw_wlan_util.c index 9ab9fb25ced4..d7b0bf237e21 100644 --- a/drivers/staging/rtl8723bs/core/rtw_wlan_util.c +++ b/drivers/staging/rtl8723bs/core/rtw_wlan_util.c @@ -1132,7 +1132,7 @@ int rtw_check_bcn_info(struct adapter *Adapter, u8 *p= frame, u32 packet_len) if (memcmp(cur_network->network.mac_address, pbssid, 6)) return true; =20 - bssid =3D rtw_zmalloc(sizeof(struct wlan_bssid_ex)); + bssid =3D kzalloc(sizeof(*bssid), GFP_KERNEL); if (!bssid) return true; =20 diff --git a/drivers/staging/rtl8723bs/core/rtw_xmit.c b/drivers/staging/rt= l8723bs/core/rtw_xmit.c index 9cead1455bfa..b2237576b58a 100644 --- a/drivers/staging/rtl8723bs/core/rtw_xmit.c +++ b/drivers/staging/rtl8723bs/core/rtw_xmit.c @@ -1170,7 +1170,7 @@ s32 rtw_mgmt_xmitframe_coalesce(struct adapter *padap= ter, struct sk_buff *pkt, s pwlanhdr =3D (struct ieee80211_hdr *)pframe; =20 ori_len =3D BIP_AAD_SIZE + pattrib->pktlen; - tmp_buf =3D BIP_AAD =3D rtw_zmalloc(ori_len); + tmp_buf =3D BIP_AAD =3D kzalloc(ori_len, GFP_ATOMIC); subtype =3D GetFrameSubType(pframe); /* bit(7)~bit(2) */ =20 if (!BIP_AAD) @@ -1674,8 +1674,7 @@ struct xmit_frame *rtw_alloc_xmitframe_once(struct xm= it_priv *pxmitpriv) struct xmit_frame *pxframe =3D NULL; u8 *alloc_addr; =20 - alloc_addr =3D rtw_zmalloc(sizeof(struct xmit_frame) + 4); - + alloc_addr =3D kzalloc(sizeof(*pxframe) + 4, GFP_ATOMIC); if (!alloc_addr) goto exit; =20 @@ -1846,8 +1845,7 @@ s32 rtw_alloc_hwxmits(struct adapter *padapter) =20 pxmitpriv->hwxmits =3D NULL; =20 - pxmitpriv->hwxmits =3D rtw_zmalloc(sizeof(struct hw_xmit) * pxmitpriv->hw= xmit_entry); - + pxmitpriv->hwxmits =3D kcalloc(pxmitpriv->hwxmit_entry, sizeof(*hwxmits),= GFP_ATOMIC); if (!pxmitpriv->hwxmits) return _FAIL; =20 diff --git a/drivers/staging/rtl8723bs/hal/rtl8723bs_recv.c b/drivers/stagi= ng/rtl8723bs/hal/rtl8723bs_recv.c index 0980fa4718b1..4cff14fe5d7a 100644 --- a/drivers/staging/rtl8723bs/hal/rtl8723bs_recv.c +++ b/drivers/staging/rtl8723bs/hal/rtl8723bs_recv.c @@ -380,7 +380,7 @@ s32 rtl8723bs_init_recv_priv(struct adapter *padapter) spin_lock_init(&precvpriv->recv_buf_pending_queue.lock); =20 n =3D NR_RECVBUFF * sizeof(struct recv_buf) + 4; - precvpriv->pallocated_recv_buf =3D rtw_zmalloc(n); + precvpriv->pallocated_recv_buf =3D kzalloc(n, GFP_KERNEL); if (!precvpriv->pallocated_recv_buf) { res =3D _FAIL; goto exit; diff --git a/drivers/staging/rtl8723bs/hal/sdio_ops.c b/drivers/staging/rtl= 8723bs/hal/sdio_ops.c index 707e5879d943..e0a676bc4e88 100644 --- a/drivers/staging/rtl8723bs/hal/sdio_ops.c +++ b/drivers/staging/rtl8723bs/hal/sdio_ops.c @@ -896,7 +896,7 @@ void sd_int_dpc(struct adapter *adapter) if (hal->sdio_hisr & SDIO_HISR_C2HCMD) { struct c2h_evt_hdr_88xx *c2h_evt; =20 - c2h_evt =3D rtw_zmalloc(16); + c2h_evt =3D kzalloc(16, GFP_ATOMIC); if (c2h_evt) { if (c2h_evt_read_88xx(adapter, (u8 *)c2h_evt) =3D=3D _SUCCESS) { if (c2h_id_filter_ccx_8723b((u8 *)c2h_evt)) { diff --git a/drivers/staging/rtl8723bs/os_dep/ioctl_cfg80211.c b/drivers/st= aging/rtl8723bs/os_dep/ioctl_cfg80211.c index 3cc3faba8ce2..a47d0d3fa2b7 100644 --- a/drivers/staging/rtl8723bs/os_dep/ioctl_cfg80211.c +++ b/drivers/staging/rtl8723bs/os_dep/ioctl_cfg80211.c @@ -111,6 +111,7 @@ static struct ieee80211_supported_band *rtw_spt_band_al= loc( { struct ieee80211_supported_band *spt_band =3D NULL; int n_channels, n_bitrates; + size_t alloc_sz; =20 if (band =3D=3D NL80211_BAND_2GHZ) { n_channels =3D RTW_2G_CHANNELS_NUM; @@ -119,9 +120,10 @@ static struct ieee80211_supported_band *rtw_spt_band_a= lloc( goto exit; } =20 - spt_band =3D rtw_zmalloc(sizeof(struct ieee80211_supported_band) + - sizeof(struct ieee80211_channel) * n_channels + - sizeof(struct ieee80211_rate) * n_bitrates); + alloc_sz =3D sizeof(*spt_band); + alloc_sz =3D size_add(alloc_sz, array_size(n_channels, sizeof(struct ieee= 80211_channel))); + alloc_sz =3D size_add(alloc_sz, array_size(n_bitrates, sizeof(struct ieee= 80211_rate))); + spt_band =3D kzalloc(alloc_sz, GFP_KERNEL); if (!spt_band) goto exit; =20 @@ -841,11 +843,9 @@ static int cfg80211_rtw_add_key(struct wiphy *wiphy, s= truct net_device *ndev, struct mlme_priv *pmlmepriv =3D &padapter->mlmepriv; =20 param_len =3D sizeof(struct ieee_param) + params->key_len; - param =3D rtw_malloc(param_len); + param =3D kzalloc(param_len, GFP_KERNEL); if (!param) - return -1; - - memset(param, 0, param_len); + return -ENOMEM; =20 param->cmd =3D IEEE_CMD_SET_ENCRYPTION; eth_broadcast_addr(param->sta_addr); @@ -1430,7 +1430,7 @@ static int rtw_cfg80211_set_wpa_ie(struct adapter *pa= dapter, u8 *pie, size_t iel goto exit; } =20 - buf =3D rtw_zmalloc(ielen); + buf =3D kzalloc(ielen, GFP_KERNEL); if (!buf) { ret =3D -ENOMEM; goto exit; @@ -1714,14 +1714,12 @@ static int cfg80211_rtw_connect(struct wiphy *wiphy= , struct net_device *ndev, wep_key_len =3D wep_key_len <=3D 5 ? 5 : 13; wep_total_len =3D wep_key_len + offsetof(struct ndis_802_11_wep, key_material); - pwep =3D rtw_malloc(wep_total_len); + pwep =3D kzalloc(wep_total_len, GFP_KERNEL); if (!pwep) { ret =3D -ENOMEM; goto exit; } =20 - memset(pwep, 0, wep_total_len); - pwep->key_length =3D wep_key_len; pwep->length =3D wep_total_len; =20 @@ -2147,7 +2145,7 @@ static int rtw_cfg80211_add_monitor_if(struct adapter= *padapter, char *name, str pnpi->sizeof_priv =3D sizeof(struct adapter); =20 /* wdev */ - mon_wdev =3D rtw_zmalloc(sizeof(struct wireless_dev)); + mon_wdev =3D kzalloc(sizeof(*mon_wdev), GFP_KERNEL); if (!mon_wdev) { ret =3D -ENOMEM; goto out; @@ -2257,7 +2255,7 @@ static int rtw_add_beacon(struct adapter *adapter, co= nst u8 *head, size_t head_l if (head_len < 24) return -EINVAL; =20 - pbuf =3D rtw_zmalloc(head_len + tail_len); + pbuf =3D kzalloc(head_len + tail_len, GFP_KERNEL); if (!pbuf) return -ENOMEM; =20 @@ -2728,7 +2726,7 @@ int rtw_wdev_alloc(struct adapter *padapter, struct d= evice *dev) goto free_wiphy; =20 /* wdev */ - wdev =3D rtw_zmalloc(sizeof(struct wireless_dev)); + wdev =3D kzalloc(sizeof(*wdev), GFP_KERNEL); if (!wdev) { ret =3D -ENOMEM; goto unregister_wiphy; diff --git a/drivers/staging/rtl8723bs/os_dep/os_intfs.c b/drivers/staging/= rtl8723bs/os_dep/os_intfs.c index f7f23d1b1709..832e2aa9bcd9 100644 --- a/drivers/staging/rtl8723bs/os_dep/os_intfs.c +++ b/drivers/staging/rtl8723bs/os_dep/os_intfs.c @@ -556,7 +556,7 @@ struct dvobj_priv *devobj_init(void) { struct dvobj_priv *pdvobj =3D NULL; =20 - pdvobj =3D rtw_zmalloc(sizeof(*pdvobj)); + pdvobj =3D kzalloc(sizeof(*pdvobj), GFP_KERNEL); if (!pdvobj) return NULL; =20 diff --git a/drivers/staging/rtl8723bs/os_dep/osdep_service.c b/drivers/sta= ging/rtl8723bs/os_dep/osdep_service.c index c999071cadde..5ff4ed73428a 100644 --- a/drivers/staging/rtl8723bs/os_dep/osdep_service.c +++ b/drivers/staging/rtl8723bs/os_dep/osdep_service.c @@ -218,13 +218,8 @@ struct rtw_cbuf *rtw_cbuf_alloc(u32 size) { struct rtw_cbuf *cbuf; =20 - cbuf =3D rtw_malloc(struct_size(cbuf, bufs, size)); - - if (cbuf) { - cbuf->write =3D 0; - cbuf->read =3D 0; - cbuf->size =3D size; - } + cbuf =3D kzalloc(struct_size(cbuf, bufs, size), GFP_KERNEL); + cbuf->size =3D size; =20 return cbuf; } diff --git a/drivers/staging/rtl8723bs/os_dep/xmit_linux.c b/drivers/stagin= g/rtl8723bs/os_dep/xmit_linux.c index 944b9c724b32..20d2926a4480 100644 --- a/drivers/staging/rtl8723bs/os_dep/xmit_linux.c +++ b/drivers/staging/rtl8723bs/os_dep/xmit_linux.c @@ -46,7 +46,7 @@ signed int rtw_endofpktfile(struct pkt_file *pfile) int rtw_os_xmit_resource_alloc(struct adapter *padapter, struct xmit_buf *= pxmitbuf, u32 alloc_sz, u8 flag) { if (alloc_sz > 0) { - pxmitbuf->pallocated_buf =3D rtw_zmalloc(alloc_sz); + pxmitbuf->pallocated_buf =3D kzalloc(alloc_sz, GFP_KERNEL); if (!pxmitbuf->pallocated_buf) return _FAIL; =20 --=20 2.43.0 From nobody Sun Feb 8 20:53:06 2026 Received: from mvsmtppost08.nm.naver.com (mvsmtppost08.nm.naver.com [61.247.196.219]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by smtp.subspace.kernel.org (Postfix) with ESMTPS id 06DBA27FD5B for ; Wed, 4 Feb 2026 13:24:09 +0000 (UTC) Authentication-Results: smtp.subspace.kernel.org; arc=none smtp.client-ip=61.247.196.219 ARC-Seal: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1770211450; cv=none; b=Yxxxjcp4G+JLTW6vZg3grS+kzQZ4/6e9NO2aQ88tWaneskEi6DbAfLc2UOBMiJvcgLtZmSduo8oWYDzxTF2Jik4w6njJPR6uwFYohgRJim386JCB0wa+akxr1b9+6a4HPpDiU4r+vmWRU1nMbhqQ9pXiJLjYwirrcr18tWa7hzI= ARC-Message-Signature: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1770211450; c=relaxed/simple; bh=i6WNelNiFRmSFKlIfQ9TXiiYoUpR4QbGf8zV8RYzVJk=; h=From:To:Cc:Subject:Date:Message-ID:In-Reply-To:References: MIME-Version; b=P02eHNhYxOIR2v5o4cVF7SwVpk/21ZgxXOF8vq85Gl+PHz0UE8FHOq4ydwzEnTU0l7HAXHQztNJ9IAV9otGG3/f5miEMldhXHMonJ4tSbYAKolOINBQHxwJgyeL6SYSoAm8UAUP9hk5Q7Oa6ObcecROBy2yaHmsQ6fWhbPuI4L4= ARC-Authentication-Results: i=1; smtp.subspace.kernel.org; dmarc=pass (p=none dis=none) header.from=naver.com; spf=pass smtp.mailfrom=naver.com; dkim=pass (2048-bit key) header.d=naver.com header.i=@naver.com header.b=Q/RZ/Thn; arc=none smtp.client-ip=61.247.196.219 Authentication-Results: smtp.subspace.kernel.org; dmarc=pass (p=none dis=none) header.from=naver.com Authentication-Results: smtp.subspace.kernel.org; spf=pass smtp.mailfrom=naver.com Authentication-Results: smtp.subspace.kernel.org; dkim=pass (2048-bit key) header.d=naver.com header.i=@naver.com header.b="Q/RZ/Thn" Received: from cvsendbo025.nm ([10.112.18.59]) by mvsmtppost08.nm.naver.com with ESMTP id 6PEE3fwNTkmd3eQlfZQZxA for ; Wed, 04 Feb 2026 13:14:00 -0000 DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=naver.com; s=s20171208; t=1770210840; bh=i6WNelNiFRmSFKlIfQ9TXiiYoUpR4QbGf8zV8RYzVJk=; h=From:To:Subject:Date:Message-ID:From:Subject:Feedback-ID: X-Works-Security; b=Q/RZ/Thn+JBB5pL5Lq3R0c6CTpCsAjBe0LS3JC5n2sah5hxi75HxqS/K0J0g1UqMw CtuOxrtYjwtgnUGFh41t7OYoOWhLRYBvs2YRe+uDQbySpZ5/q4KfralJfKdBreqM2p vjaoQbwfruMrCxRsH7bGxN26unl5G0r2IurSLUBQhQWckdn693JX2ZwW2pGgNzh382 JjwJ0QnLa8n70mgZMaE4QjPFLV0Lcebef9JQ6IUoMrSh2SjhEesnBoWjYDp+cnSQ5r pXNoD3pE33PkBmRmgIpNHeeH0pl+IGsqjP0JEgcsmxBX5SoieEIxQg027YxJtPDcLN Oywbxxe8fqMqg== X-Session-ID: yAquAJlxT3eBm5mfTdc1PA X-Works-Send-Opt: p/Y/jAJYjHmwKo2qKqJYFquqFNwkx0eFjAJYKg== X-Works-Smtp-Source: XqKXKxgXFqJZ+HmmFAt/+6E= Received: from JMW-Ubuntu.. ([14.38.141.199]) by cvnsmtp008.nm.naver.com with ESMTP id yAquAJlxT3eBm5mfTdc1PA for (version=TLSv1.3 cipher=TLS_AES_256_GCM_SHA384); Wed, 04 Feb 2026 13:14:00 -0000 From: Minu Jin To: gregkh@linuxfoundation.org, andy@kernel.org Cc: dan.carpenter@linaro.org, trohan2000@gmail.com, straube.linux@gmail.com, linux-staging@lists.linux.dev, linux-kernel@vger.kernel.org, Minu Jin , Andy Shevchenko Subject: [PATCH v6 4/5] staging: rtl8723bs: use standard skb allocation APIs Date: Wed, 4 Feb 2026 22:13:46 +0900 Message-ID: <20260204131347.3515949-5-s9430939@naver.com> X-Mailer: git-send-email 2.43.0 In-Reply-To: <20260204131347.3515949-1-s9430939@naver.com> References: <20260204131347.3515949-1-s9430939@naver.com> Precedence: bulk X-Mailing-List: linux-kernel@vger.kernel.org List-Id: List-Subscribe: List-Unsubscribe: MIME-Version: 1.0 Content-Transfer-Encoding: quoted-printable Content-Type: text/plain; charset="utf-8" Replace custom wrappers rtw_skb_alloc() and rtw_skb_copy() with standard kernel APIs __dev_alloc_skb() and skb_copy(). 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. Signed-off-by: Minu Jin Reviewed-by: Andy Shevchenko --- drivers/staging/rtl8723bs/core/rtw_recv.c | 2 +- drivers/staging/rtl8723bs/hal/rtl8723bs_recv.c | 5 ++--- drivers/staging/rtl8723bs/hal/sdio_ops.c | 2 +- drivers/staging/rtl8723bs/os_dep/xmit_linux.c | 3 +-- 4 files changed, 5 insertions(+), 7 deletions(-) diff --git a/drivers/staging/rtl8723bs/core/rtw_recv.c b/drivers/staging/rt= l8723bs/core/rtw_recv.c index f599a867eb0b..9016465d5140 100644 --- a/drivers/staging/rtl8723bs/core/rtw_recv.c +++ b/drivers/staging/rtl8723bs/core/rtw_recv.c @@ -1630,7 +1630,7 @@ static struct sk_buff *rtw_alloc_msdu_pkt(union recv_= frame *prframe, u16 nSubfra =20 pattrib =3D &prframe->u.hdr.attrib; =20 - sub_skb =3D rtw_skb_alloc(nSubframe_Length + 12); + sub_skb =3D __dev_alloc_skb(nSubframe_Length + 12, GFP_ATOMIC); if (!sub_skb) return NULL; =20 diff --git a/drivers/staging/rtl8723bs/hal/rtl8723bs_recv.c b/drivers/stagi= ng/rtl8723bs/hal/rtl8723bs_recv.c index 4cff14fe5d7a..5faac9f28b02 100644 --- a/drivers/staging/rtl8723bs/hal/rtl8723bs_recv.c +++ b/drivers/staging/rtl8723bs/hal/rtl8723bs_recv.c @@ -290,7 +290,7 @@ static void rtl8723bs_recv_tasklet(struct tasklet_struc= t *t) alloc_sz +=3D 14; } =20 - pkt_copy =3D rtw_skb_alloc(alloc_sz); + pkt_copy =3D __dev_alloc_skb(alloc_sz, GFP_ATOMIC); if (!pkt_copy) { rtw_free_recvframe(precvframe, &precvpriv->free_recv_queue); break; @@ -397,8 +397,7 @@ s32 rtl8723bs_init_recv_priv(struct adapter *padapter) SIZE_PTR tmpaddr =3D 0; SIZE_PTR alignment =3D 0; =20 - precvbuf->pskb =3D rtw_skb_alloc(MAX_RECVBUF_SZ + RECVBUFF_ALIGN_SZ); - + precvbuf->pskb =3D __dev_alloc_skb(MAX_RECVBUF_SZ + RECVBUFF_ALIGN_SZ, = GFP_ATOMIC); if (precvbuf->pskb) { precvbuf->pskb->dev =3D padapter->pnetdev; =20 diff --git a/drivers/staging/rtl8723bs/hal/sdio_ops.c b/drivers/staging/rtl= 8723bs/hal/sdio_ops.c index e0a676bc4e88..c9cb20c61a2b 100644 --- a/drivers/staging/rtl8723bs/hal/sdio_ops.c +++ b/drivers/staging/rtl8723bs/hal/sdio_ops.c @@ -810,7 +810,7 @@ static struct recv_buf *sd_recv_rxfifo(struct adapter *= adapter, u32 size) SIZE_PTR tmpaddr =3D 0; SIZE_PTR alignment =3D 0; =20 - recvbuf->pskb =3D rtw_skb_alloc(MAX_RECVBUF_SZ + RECVBUFF_ALIGN_SZ); + recvbuf->pskb =3D __dev_alloc_skb(MAX_RECVBUF_SZ + RECVBUFF_ALIGN_SZ, GF= P_ATOMIC); if (!recvbuf->pskb) return NULL; =20 diff --git a/drivers/staging/rtl8723bs/os_dep/xmit_linux.c b/drivers/stagin= g/rtl8723bs/os_dep/xmit_linux.c index 20d2926a4480..f394b2ea6116 100644 --- a/drivers/staging/rtl8723bs/os_dep/xmit_linux.c +++ b/drivers/staging/rtl8723bs/os_dep/xmit_linux.c @@ -159,8 +159,7 @@ static int rtw_mlcst2unicst(struct adapter *padapter, s= truct sk_buff *skb) !memcmp(psta->hwaddr, bc_addr, 6)) continue; =20 - newskb =3D rtw_skb_copy(skb); - + newskb =3D skb_copy(skb, GFP_ATOMIC); if (newskb) { memcpy(newskb->data, psta->hwaddr, 6); res =3D rtw_xmit(padapter, &newskb); --=20 2.43.0 From nobody Sun Feb 8 20:53:06 2026 Received: from cvsmtppost08.nm.naver.com (cvsmtppost08.nm.naver.com [114.111.35.229]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by smtp.subspace.kernel.org (Postfix) with ESMTPS id 7242540B6DF for ; Wed, 4 Feb 2026 13:14:09 +0000 (UTC) Authentication-Results: smtp.subspace.kernel.org; arc=none smtp.client-ip=114.111.35.229 ARC-Seal: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1770210850; cv=none; b=fc21WQYI4mi5r0hTX1YKvrqkbmIpqjOePtzgiZQebv8ieBR5O6Pbkw7pDWpwySI7jDey3olrTLyA1qqqroi/xJH/ovxvj6b2Z44ib2HzvrQEgTxcvNtSPkrhdZ08QSeeNShOfRvsurbxgnv3/rs2t7G2fwBD9YlJX8i9nNBpupc= ARC-Message-Signature: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1770210850; c=relaxed/simple; bh=ReLkNKICL7RjZJn8yNitBNNG9G+sk/JdI8veXJ8uPQk=; h=From:To:Cc:Subject:Date:Message-ID:In-Reply-To:References: MIME-Version; b=V4ggvwqMsgMFQb1PrpsjB2dNJI9E+ZAGwxPZLwywdliQVfefm9XGkNR1YJRzDC1YfJfjg7mNR85o0udmk3wcLAL0DifSufdfy18R81kAyZlKJaYSELJRJeQjRjdJdlg+Urbr0Mgo3YK9TF/jOU1FhGci2eNHyxtZhOSle0jKn3o= ARC-Authentication-Results: i=1; smtp.subspace.kernel.org; dmarc=pass (p=none dis=none) header.from=naver.com; spf=pass smtp.mailfrom=naver.com; dkim=pass (2048-bit key) header.d=naver.com header.i=@naver.com header.b=PDqS5lkd; arc=none smtp.client-ip=114.111.35.229 Authentication-Results: smtp.subspace.kernel.org; dmarc=pass (p=none dis=none) header.from=naver.com Authentication-Results: smtp.subspace.kernel.org; spf=pass smtp.mailfrom=naver.com Authentication-Results: smtp.subspace.kernel.org; dkim=pass (2048-bit key) header.d=naver.com header.i=@naver.com header.b="PDqS5lkd" Received: from cvsendbo019.nm ([10.112.22.34]) by cvsmtppost08.nm.naver.com with ESMTP id h+iGvaMbRnC-rvn5q9xiYg for ; Wed, 04 Feb 2026 13:14:02 -0000 DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=naver.com; s=s20171208; t=1770210842; bh=ReLkNKICL7RjZJn8yNitBNNG9G+sk/JdI8veXJ8uPQk=; h=From:To:Subject:Date:Message-ID:From:Subject:Feedback-ID: X-Works-Security; b=PDqS5lkdsEgoym5dvqbyN+Jwbc/I2jmrRHgQi3HV6Z5/K/8+MtF47ox2TZESXpiOU P93YnZQKcR2/XqhMiDt4nSq2DVjm4gO4fWQ+Rt6PZgVSBfS/sqkhfI7XSIl3S/RAwE mSydgc9ULgy6ObW7S4fi9AmyMQFWygexWfXNem6aSRmoOqF7lJd25axDCiNUI39JMT A7x3uThyPF7P+FB3540z2sOn6TEf+NF3swww2+1+NYn8iF05N2G5GZb2eZW6gxYoTN RySO3ZSRsEl1z34eoP+LbNQ7NtBD9yGJNiClT0t/tTGrlVkq9BMLmdym0lG9bbwx0G 6IcMEQxj6/Lag== X-Session-ID: 7PvkJljZTyuf7SuHZQqghg X-Works-Send-Opt: p/Y/jAJYjHmwKo2qKqJYFquqFNwkx0eFjAJYKg== X-Works-Smtp-Source: XqbXKxgXFqJZ+HmwFAt/+6E= Received: from JMW-Ubuntu.. ([14.38.141.199]) by cvnsmtp008.nm.naver.com with ESMTP id 7PvkJljZTyuf7SuHZQqghg for (version=TLSv1.3 cipher=TLS_AES_256_GCM_SHA384); Wed, 04 Feb 2026 13:14:01 -0000 From: Minu Jin To: gregkh@linuxfoundation.org, andy@kernel.org Cc: dan.carpenter@linaro.org, trohan2000@gmail.com, straube.linux@gmail.com, linux-staging@lists.linux.dev, linux-kernel@vger.kernel.org, Minu Jin , Andy Shevchenko Subject: [PATCH v6 5/5] staging: rtl8723bs: remove unused allocation wrapper functions Date: Wed, 4 Feb 2026 22:13:47 +0900 Message-ID: <20260204131347.3515949-6-s9430939@naver.com> X-Mailer: git-send-email 2.43.0 In-Reply-To: <20260204131347.3515949-1-s9430939@naver.com> References: <20260204131347.3515949-1-s9430939@naver.com> Precedence: bulk X-Mailing-List: linux-kernel@vger.kernel.org List-Id: List-Subscribe: List-Unsubscribe: MIME-Version: 1.0 Content-Transfer-Encoding: quoted-printable Content-Type: text/plain; charset="utf-8" Remove the custom memory allocation wrapper functions and macros from osdep_service.c and osdep_service.h as they are no longer used. Signed-off-by: Minu Jin Reviewed-by: Andy Shevchenko --- .../staging/rtl8723bs/include/osdep_service.h | 11 -------- .../staging/rtl8723bs/os_dep/osdep_service.c | 25 ------------------- 2 files changed, 36 deletions(-) diff --git a/drivers/staging/rtl8723bs/include/osdep_service.h b/drivers/st= aging/rtl8723bs/include/osdep_service.h index 6458ff95ff9d..955e8678dc26 100644 --- a/drivers/staging/rtl8723bs/include/osdep_service.h +++ b/drivers/staging/rtl8723bs/include/osdep_service.h @@ -54,21 +54,10 @@ =20 extern int RTW_STATUS_CODE(int error_code); =20 -void *_rtw_zmalloc(u32 sz); -void *_rtw_malloc(u32 sz); void _kfree(u8 *pbuf, u32 sz); =20 -struct sk_buff *_rtw_skb_alloc(u32 sz); -struct sk_buff *_rtw_skb_copy(const struct sk_buff *skb); int _rtw_netif_rx(struct net_device *ndev, struct sk_buff *skb); =20 -#define rtw_malloc(sz) _rtw_malloc((sz)) -#define rtw_zmalloc(sz) _rtw_zmalloc((sz)) - -#define rtw_skb_alloc(size) _rtw_skb_alloc((size)) -#define rtw_skb_alloc_f(size, mstat_f) _rtw_skb_alloc((size)) -#define rtw_skb_copy(skb) _rtw_skb_copy((skb)) -#define rtw_skb_copy_f(skb, mstat_f) _rtw_skb_copy((skb)) #define rtw_netif_rx(ndev, skb) _rtw_netif_rx(ndev, skb) =20 extern void _rtw_init_queue(struct __queue *pqueue); diff --git a/drivers/staging/rtl8723bs/os_dep/osdep_service.c b/drivers/sta= ging/rtl8723bs/os_dep/osdep_service.c index 5ff4ed73428a..2a8fdafefcd9 100644 --- a/drivers/staging/rtl8723bs/os_dep/osdep_service.c +++ b/drivers/staging/rtl8723bs/os_dep/osdep_service.c @@ -14,31 +14,6 @@ inline int RTW_STATUS_CODE(int error_code) return _FAIL; } =20 -void *_rtw_malloc(u32 sz) -{ - return kmalloc(sz, in_interrupt() ? GFP_ATOMIC : GFP_KERNEL); -} - -void *_rtw_zmalloc(u32 sz) -{ - void *pbuf =3D _rtw_malloc(sz); - - if (pbuf) - memset(pbuf, 0, sz); - - return pbuf; -} - -inline struct sk_buff *_rtw_skb_alloc(u32 sz) -{ - return __dev_alloc_skb(sz, in_interrupt() ? GFP_ATOMIC : GFP_KERNEL); -} - -inline struct sk_buff *_rtw_skb_copy(const struct sk_buff *skb) -{ - return skb_copy(skb, in_interrupt() ? GFP_ATOMIC : GFP_KERNEL); -} - inline int _rtw_netif_rx(struct net_device *ndev, struct sk_buff *skb) { skb->dev =3D ndev; --=20 2.43.0