From a48df88b54a6036278941a6e5d762d15594b4a3e Mon Sep 17 00:00:00 2001 From: Shelley Yang Date: Mon, 21 Oct 2024 20:46:48 -0500 Subject: [PATCH 297/299] non-upstream: new kenrel checks memory size without indirect allocating calculation To avoid warning code trace causes misunderstanding, replace by the other API without checking Signed-off-by: Shelley Yang --- .../wireless/broadcom/brcm80211/brcmfmac/cfg80211.c | 13 ++++++++----- 1 file changed, 8 insertions(+), 5 deletions(-) diff --git a/drivers/net/wireless/broadcom/brcm80211/brcmfmac/cfg80211.c b/drivers/net/wireless/broadcom/brcm80211/brcmfmac/cfg80211.c index 7201c4e79b4e..05e377b812e8 100644 --- a/drivers/net/wireless/broadcom/brcm80211/brcmfmac/cfg80211.c +++ b/drivers/net/wireless/broadcom/brcm80211/brcmfmac/cfg80211.c @@ -10,6 +10,7 @@ #include #include #include +#include #include #include #include @@ -513,7 +514,8 @@ wl_set_wsec_info_algos(struct brcmf_if *ifp, u32 algos, u32 mask) wsec_info_tlv->id = cpu_to_le16(WL_WSEC_INFO_BSS_ALGOS); wsec_info_tlv->len = cpu_to_le16(tlv_data_len); - memcpy(wsec_info_tlv->data, tlv_data, tlv_data_len); + unsafe_memcpy(wsec_info_tlv->data, tlv_data, tlv_data_len, + /* alloc enough buf*/); param_len = offsetof(struct wl_wsec_info, tlvs) + offsetof(struct wl_wsec_info_tlv, data) + tlv_data_len; @@ -6648,8 +6650,8 @@ brcmf_cfg80211_mgmt_tx(struct wiphy *wiphy, struct wireless_dev *wdev, memcpy(&mf_params->da[0], &mgmt->da[0], ETH_ALEN); memcpy(&mf_params->bssid[0], &mgmt->bssid[0], ETH_ALEN); mf_params->packet_id = cpu_to_le32(*cookie); - memcpy(mf_params->data, &buf[DOT11_MGMT_HDR_LEN], - le16_to_cpu(mf_params->len)); + unsafe_memcpy(mf_params->data, &buf[DOT11_MGMT_HDR_LEN], + le16_to_cpu(mf_params->len), /* alloc enough buf*/); brcmf_dbg(TRACE, "Auth frame, cookie=%d, fc=%04x, len=%d, channel=%d\n", le32_to_cpu(mf_params->packet_id), @@ -8337,8 +8339,9 @@ brcmf_notify_auth_frame_rx(struct brcmf_if *ifp, brcmf_fil_cmd_data_get(ifp, BRCMF_C_GET_BSSID, mgmt_frame->bssid, ETH_ALEN); frame += offsetof(struct ieee80211_mgmt, u); - memcpy(&mgmt_frame->u, frame, - mgmt_frame_len - offsetof(struct ieee80211_mgmt, u)); + unsafe_memcpy(&mgmt_frame->u, frame, + mgmt_frame_len - offsetof(struct ieee80211_mgmt, u), + /* alloc enough buf*/); freq = ieee80211_channel_to_frequency(ch.control_ch_num, BRCMU_CHAN_BAND_TO_NL80211(ch.band)); -- 2.25.1