From nobody Tue Feb 10 03:45:16 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