From mboxrd@z Thu Jan 1 00:00:00 1970 Received: from mail-ot1-f45.google.com (mail-ot1-f45.google.com [209.85.210.45]) (using TLSv1.2 with cipher ECDHE-RSA-AES128-GCM-SHA256 (128/128 bits)) (No client certificate requested) by smtp.subspace.kernel.org (Postfix) with ESMTPS id 15ECB52BE3E for ; Tue, 13 Oct 2026 20:15:43 +0000 (UTC) Authentication-Results: smtp.subspace.kernel.org; arc=none smtp.client-ip=209.85.210.45 ARC-Seal:i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1791922547; cv=none; b=m08QZM+rtD8+wmJllFPDpqk4aqyjYL1fZyiA3Bmz/66o26fNwPndt/CIskeT85mXsbegSnetYovJ+MmJ8ENiX429WJ9FK34ttltsGTcRsqeBLIMgkRFHyNLlYUPb3APeB/Xvq6QNPlMSZzyHckQyV6GVjEB+IJnufW6IvMOO/nw= ARC-Message-Signature:i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1791922547; c=relaxed/simple; bh=Z8Bu+KL+bj0mGq2kIrvhdlj8hmMhTjmJBRCxms5B6UE=; h=From:To:Cc:Subject:Date:Message-ID:In-Reply-To:References: MIME-Version; b=qR8NUZPZHngG91UW3mVUI2pZUEeWWLyRlsCRlZxORVN6dgP7n0SUc9BBgX6DEr5ckRQPWvpLTIh0iYsjNaPkIWJEzriJ8/2/XURXLsFJ4TYweSngDBhL9dsmNynt+iMbsJE+apil3Mx0UO941oAvNXBf14xN5dOBEHVW+cOoFmo= ARC-Authentication-Results:i=1; smtp.subspace.kernel.org; dmarc=pass (p=none dis=none) header.from=gmail.com; spf=pass smtp.mailfrom=gmail.com; dkim=pass (2048-bit key) header.d=gmail.com header.i=@gmail.com header.b=PNL0C5Ls; arc=none smtp.client-ip=209.85.210.45 Authentication-Results: smtp.subspace.kernel.org; dmarc=pass (p=none dis=none) header.from=gmail.com Authentication-Results: smtp.subspace.kernel.org; spf=pass smtp.mailfrom=gmail.com Authentication-Results: smtp.subspace.kernel.org; dkim=pass (2048-bit key) header.d=gmail.com header.i=@gmail.com header.b="PNL0C5Ls" Received: by mail-ot1-f45.google.com with SMTP id 46e09a7af769-823e4047037so2700444a34.2 for ; Tue, 13 Oct 2026 13:15:43 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20251104; t=1791922543; x=1792527343; darn=lists.linux.dev; h=content-transfer-encoding:mime-version:references:in-reply-to :message-id:date:subject:cc:to:from:from:to:cc:subject:date :message-id:reply-to:content-type; bh=JOYnbfYGvBBLrVRDfsaZ7wyCdHgMKhFfjmPtx3cZKDo=; b=PNL0C5LsYIsOo8OKfx6wxK3fIcNaFuK1X9gg1XAd6RlRm65AnKBGLVLZ1xqRDIf1JX UXc0sbY3jFuFGauuImqbfvsSp9oTCxkQwYDE2ByWIro1OPUaAcGIgY4wepmGDGAbW5as kFu5AJZ5YJRJj6a4zaJKpRoG0WoFv1IiwXn4a6aZsWdO/FZMF7fiibWwu865BQVBO3wL dwsPhBtfbdCWt/iHTm4xcLu/2wIMJxUAaV0Bu9FwVGHbAqzirr3FVZQDdxSa0Ly+jnBy 8kD+XonsqxZ/Moqp6C1KBIX8KkipkSPI+YAYZaymfqNFbP+Bu2tpwBSr+tB7nFgwX7IA nGng== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20260707; t=1791922543; x=1792527343; h=content-transfer-encoding:mime-version:references:in-reply-to :message-id:date:subject:cc:to:from:x-gm-gg:x-gm-message-state:from :to:cc:subject:date:message-id:reply-to:content-type; bh=JOYnbfYGvBBLrVRDfsaZ7wyCdHgMKhFfjmPtx3cZKDo=; b=HBNBzVwfnWEEATbKJX2H8OOChSc1RtabX3kjf6pMyUE0dRcHYMBhsSjFGbIqZIphGU pDwhG2D7QOhu8y9H3zUmWgzGbJNLLzRKuOYP6YZLhMRANpyi+eD1dUqy9vNxYMU0+RZT dY8rrcwwIzFsebShk98yOSkzRq6uWQ/kjqN+N9SUYoN5d7K1E1aPnXlyF9t2NzuH6+qG vQukwAm2F2TsJN8i4f2WXCeCWFqLoyfj/uGeaqJt8Mmuh1VoLjIa9sH13h0BhFN4DNc2 PV+8n8Hh7ThvdZrZ9AoCjMg6OXgxWkBDBB+y7ZrTWKfQgCQjUKsyUsAlGgXPQ1i0kJqG YA1w== X-Gm-Message-State: AFq9FYLt/nRvG5NjK+2Q4OgmpEGk13VvVkrFwkpNAsqv19j1qmqipKpT /QbHhUpOS8We1wEau+84FLvuiIxnXWK3auLU6JZ/ImVJX/FNoQQ3EsRO X-Gm-Gg: AYBFou3r1ZvVlk7MXss1qSDh1UpSOEVljxRBGYZTNGsftRoj4mvi87jU8SJd6hFV3Po H7Z6CMsJFMGkOBLJqr7nJ6/8U5+8R1wZUzVKUntp1JzOSESrC9XQE3nU4jQJEKWnZSBKoTj0dmy icRzzwqTgHKHQcpAmaMRhjV/5X8b6mQvOk0m5gdSuu6vTXzMJO6yJop/Z33iQQo+1mvYt8IzdYE LEFkiypr4mtgl3JDicRebEKmo6leBmaiNwA69XccOansyiwBQBM9ABvLO+HsNbrB0P00R4JfJZF 02A/b2VVxZsPuD4s774IN0Uf2hOAeVBq4EGqwfIjbHSNk7/s5WYBEY474TbeSnXrM80XTg/WUop 8NEhffUtw51pMMUGreMQ3bQ/4542F0inBXjztWTrU6zSzeaCdwLZd3W5A4t0bCrfjHSwxgNgt12 U5PQKrwoKrfpUpfJOZuvxg7FSLxuG6QR871Xt+ndp8QbVXeOP6oC5eIfB9vuSacuadvETMSk0/Y zo= X-Received: by 2002:a05:6830:6f8f:b0:821:8e71:1bb5 with SMTP id 46e09a7af769-830963f4818mr13915729a34.14.1791922542558; Tue, 13 Oct 2026 13:15:42 -0700 (PDT) Received: from pop-os.. ([24.32.17.59]) by smtp.gmail.com with ESMTPSA id 46e09a7af769-83038f82468sm13557570a34.11.2026.10.13.13.15.41 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Tue, 13 Oct 2026 13:15:42 -0700 (PDT) From: Rishik Yechuri X-Google-Original-From: Rishik Yechuri To: Greg Kroah-Hartman Cc: linux-staging@lists.linux.dev, linux-kernel@vger.kernel.org, Rishik Yechuri Subject: [PATCH 02/10] staging: rtl8723bs: use ieee80211_has_*() to test frame control flags Date: Tue, 13 Oct 2026 15:15:30 -0500 Message-ID: <20261013201538.43156-3-rishik.yechuri.code@gmail.com> X-Mailer: git-send-email 2.43.0 In-Reply-To: <20261013201538.43156-1-rishik.yechuri.code@gmail.com> References: <20261013201538.43156-1-rishik.yechuri.code@gmail.com> Precedence: bulk X-Mailing-List: linux-staging@lists.linux.dev List-Id: List-Subscribe: List-Unsubscribe: MIME-Version: 1.0 Content-Transfer-Encoding: 8bit The driver defines GetToDs(), GetFrDs(), get_tofr_ds(), GetMFrag(), GetRetry(), GetPwrMgt(), GetMData(), GetPrivacy() and GetOrder() in wifi.h to test individual bits of the IEEE 802.11 Frame Control field. Each macro casts the frame buffer to __le16 and masks a single bit. provides equivalent helpers that operate on the frame_control member of struct ieee80211_hdr and test the same bits. Replace each use of these macros with the corresponding helper: GetToDs() -> ieee80211_has_tods() GetFrDs() -> ieee80211_has_fromds() GetMFrag() -> ieee80211_has_morefrags() GetRetry() -> ieee80211_has_retry() GetPwrMgt() -> ieee80211_has_pm() GetMData() -> ieee80211_has_moredata() GetPrivacy() -> ieee80211_has_protected() GetOrder() -> ieee80211_has_order() Open code get_tofr_ds() using ieee80211_has_tods() and ieee80211_has_fromds(), and remove the macro definitions. Also remove GetOrderBit(), which has no users. No functional change intended. Signed-off-by: Rishik Yechuri --- drivers/staging/rtl8723bs/core/rtw_mlme_ext.c | 10 +++--- drivers/staging/rtl8723bs/core/rtw_recv.c | 19 +++++++----- drivers/staging/rtl8723bs/include/wifi.h | 31 ++++--------------- 3 files changed, 23 insertions(+), 37 deletions(-) diff --git a/drivers/staging/rtl8723bs/core/rtw_mlme_ext.c b/drivers/staging/rtl8723bs/core/rtw_mlme_ext.c index 1349bd423..d318b0ff4 100644 --- a/drivers/staging/rtl8723bs/core/rtw_mlme_ext.c +++ b/drivers/staging/rtl8723bs/core/rtw_mlme_ext.c @@ -455,7 +455,7 @@ void mgt_dispatcher(struct adapter *padapter, union recv_frame *precv_frame) ptable += index; if (psta) { - if (GetRetry(pframe)) { + if (ieee80211_has_retry(hdr->frame_control)) { if (precv_frame->u.hdr.attrib.seq_num == psta->rx_mgmt_frame_seq_num) { /* drop the duplicate management frame */ return; @@ -690,7 +690,7 @@ unsigned int OnAuth(struct adapter *padapter, union recv_frame *precv_frame) auth_mode = psecuritypriv->dot11_auth_algrthm; - if (GetPrivacy(pframe)) { + if (ieee80211_has_protected(hdr->frame_control)) { u8 *iv; struct rx_pkt_attrib *prxattrib = &(precv_frame->u.hdr.attrib); @@ -849,6 +849,7 @@ unsigned int OnAuthClient(struct adapter *padapter, union recv_frame *precv_fram struct mlme_ext_priv *pmlmeext = &padapter->mlmeextpriv; struct mlme_ext_info *pmlmeinfo = &pmlmeext->mlmext_info; u8 *pframe = precv_frame->u.hdr.rx_data; + struct ieee80211_hdr *hdr = (struct ieee80211_hdr *)pframe; uint pkt_len = precv_frame->u.hdr.len; /* check A1 matches or not */ @@ -858,7 +859,7 @@ unsigned int OnAuthClient(struct adapter *padapter, union recv_frame *precv_fram if (!(pmlmeinfo->state & WIFI_FW_AUTH_STATE)) return _SUCCESS; - offset = (GetPrivacy(pframe)) ? 4 : 0; + offset = (ieee80211_has_protected(hdr->frame_control)) ? 4 : 0; seq = le16_to_cpu(*(__le16 *)((SIZE_PTR)pframe + WLAN_HDR_A3_LEN + offset + 2)); status = le16_to_cpu(*(__le16 *)((SIZE_PTR)pframe + WLAN_HDR_A3_LEN + offset + 4)); @@ -1673,10 +1674,11 @@ static s32 rtw_action_public_decache(union recv_frame *recv_frame, s32 token) struct adapter *adapter = recv_frame->u.hdr.adapter; struct mlme_ext_priv *mlmeext = &(adapter->mlmeextpriv); u8 *frame = recv_frame->u.hdr.rx_data; + struct ieee80211_hdr *hdr = (struct ieee80211_hdr *)frame; u16 seq_ctrl = ((recv_frame->u.hdr.attrib.seq_num & 0xffff) << 4) | (recv_frame->u.hdr.attrib.frag_num & 0xf); - if (GetRetry(frame)) { + if (ieee80211_has_retry(hdr->frame_control)) { if (token >= 0) { if ((seq_ctrl == mlmeext->action_public_rxseq) && (token == mlmeext->action_public_dialog_token)) diff --git a/drivers/staging/rtl8723bs/core/rtw_recv.c b/drivers/staging/rtl8723bs/core/rtw_recv.c index 8f3c0552e..43452f50d 100644 --- a/drivers/staging/rtl8723bs/core/rtw_recv.c +++ b/drivers/staging/rtl8723bs/core/rtw_recv.c @@ -566,13 +566,14 @@ static void process_pwrbit_data(struct adapter *padapter, union recv_frame *prec { unsigned char pwrbit; u8 *ptr = precv_frame->u.hdr.rx_data; + struct ieee80211_hdr *hdr = (struct ieee80211_hdr *)ptr; struct rx_pkt_attrib *pattrib = &precv_frame->u.hdr.attrib; struct sta_priv *pstapriv = &padapter->stapriv; struct sta_info *psta = NULL; psta = rtw_get_stainfo(pstapriv, pattrib->src); - pwrbit = GetPwrMgt(ptr); + pwrbit = ieee80211_has_pm(hdr->frame_control); if (psta) { if (pwrbit) { @@ -1248,7 +1249,7 @@ static signed int validate_recv_data_frame(struct adapter *adapter, union recv_f struct security_priv *psecuritypriv = &adapter->securitypriv; signed int ret = _SUCCESS; - bretry = GetRetry(ptr); + bretry = ieee80211_has_retry(hdr->frame_control); pda = get_da(ptr); psa = get_sa(ptr); pbssid = get_hdr_bssid(ptr); @@ -1435,6 +1436,7 @@ static signed int validate_recv_frame(struct adapter *adapter, union recv_frame struct rx_pkt_attrib *pattrib = &precv_frame->u.hdr.attrib; u8 *ptr = precv_frame->u.hdr.rx_data; + struct ieee80211_hdr *hdr = (struct ieee80211_hdr *)ptr; u8 ver = (unsigned char) (*ptr) & 0x3; /* add version chk */ @@ -1446,16 +1448,17 @@ static signed int validate_recv_frame(struct adapter *adapter, union recv_frame type = GetFrameType(ptr); subtype = GetFrameSubType(ptr); /* bit(7)~bit(2) */ - pattrib->to_fr_ds = get_tofr_ds(ptr); + pattrib->to_fr_ds = (ieee80211_has_tods(hdr->frame_control) << 1) | + ieee80211_has_fromds(hdr->frame_control); pattrib->frag_num = GetFragNum(ptr); pattrib->seq_num = GetSequence(ptr); - pattrib->pw_save = GetPwrMgt(ptr); - pattrib->mfrag = GetMFrag(ptr); - pattrib->mdata = GetMData(ptr); - pattrib->privacy = GetPrivacy(ptr); - pattrib->order = GetOrder(ptr); + pattrib->pw_save = ieee80211_has_pm(hdr->frame_control); + pattrib->mfrag = ieee80211_has_morefrags(hdr->frame_control); + pattrib->mdata = ieee80211_has_moredata(hdr->frame_control); + pattrib->privacy = ieee80211_has_protected(hdr->frame_control); + pattrib->order = ieee80211_has_order(hdr->frame_control); switch (type) { case WIFI_MGT_TYPE: /* mgnt */ diff --git a/drivers/staging/rtl8723bs/include/wifi.h b/drivers/staging/rtl8723bs/include/wifi.h index 6c877c7ca..800bfd962 100644 --- a/drivers/staging/rtl8723bs/include/wifi.h +++ b/drivers/staging/rtl8723bs/include/wifi.h @@ -75,53 +75,33 @@ enum { #define SetToDs(pbuf) \ (*(__le16 *)(pbuf) |= cpu_to_le16(_TO_DS_)) -#define GetToDs(pbuf) (((*(__le16 *)(pbuf)) & cpu_to_le16(_TO_DS_)) != 0) - #define SetFrDs(pbuf) \ (*(__le16 *)(pbuf) |= cpu_to_le16(_FROM_DS_)) -#define GetFrDs(pbuf) (((*(__le16 *)(pbuf)) & cpu_to_le16(_FROM_DS_)) != 0) - -#define get_tofr_ds(pframe) ((GetToDs(pframe) << 1) | GetFrDs(pframe)) - #define SetMFrag(pbuf) \ (*(__le16 *)(pbuf) |= cpu_to_le16(_MORE_FRAG_)) -#define GetMFrag(pbuf) (((*(__le16 *)(pbuf)) & cpu_to_le16(_MORE_FRAG_)) != 0) - #define ClearMFrag(pbuf) \ (*(__le16 *)(pbuf) &= (~cpu_to_le16(_MORE_FRAG_))) -#define GetRetry(pbuf) (((*(__le16 *)(pbuf)) & cpu_to_le16(_RETRY_)) != 0) - #define ClearRetry(pbuf) \ (*(__le16 *)(pbuf) &= (~cpu_to_le16(_RETRY_))) #define SetPwrMgt(pbuf) \ (*(__le16 *)(pbuf) |= cpu_to_le16(_PWRMGT_)) -#define GetPwrMgt(pbuf) (((*(__le16 *)(pbuf)) & cpu_to_le16(_PWRMGT_)) != 0) - #define ClearPwrMgt(pbuf) \ (*(__le16 *)(pbuf) &= (~cpu_to_le16(_PWRMGT_))) #define SetMData(pbuf) \ (*(__le16 *)(pbuf) |= cpu_to_le16(_MORE_DATA_)) -#define GetMData(pbuf) (((*(__le16 *)(pbuf)) & cpu_to_le16(_MORE_DATA_)) != 0) - #define ClearMData(pbuf) \ (*(__le16 *)(pbuf) &= (~cpu_to_le16(_MORE_DATA_))) #define SetPrivacy(pbuf) \ (*(__le16 *)(pbuf) |= cpu_to_le16(_PRIVACY_)) -#define GetPrivacy(pbuf) \ - (((*(__le16 *)(pbuf)) & cpu_to_le16(_PRIVACY_)) != 0) - -#define GetOrder(pbuf) \ - (((*(__le16 *)(pbuf)) & cpu_to_le16(_ORDER_)) != 0) - #define GetFrameType(pbuf) \ (le16_to_cpu(*(__le16 *)(pbuf)) & (BIT(3) | BIT(2))) @@ -204,7 +184,8 @@ static inline unsigned char *get_da(unsigned char *pframe) { struct ieee80211_hdr *hdr = (struct ieee80211_hdr *)pframe; unsigned char *da; - unsigned int to_fr_ds = (GetToDs(pframe) << 1) | GetFrDs(pframe); + unsigned int to_fr_ds = (ieee80211_has_tods(hdr->frame_control) << 1) | + ieee80211_has_fromds(hdr->frame_control); switch (to_fr_ds) { case 0x00: /* ToDs = 0, FromDs = 0 */ @@ -228,7 +209,8 @@ static inline unsigned char *get_sa(unsigned char *pframe) { struct ieee80211_hdr *hdr = (struct ieee80211_hdr *)pframe; unsigned char *sa; - unsigned int to_fr_ds = (GetToDs(pframe) << 1) | GetFrDs(pframe); + unsigned int to_fr_ds = (ieee80211_has_tods(hdr->frame_control) << 1) | + ieee80211_has_fromds(hdr->frame_control); switch (to_fr_ds) { case 0x00: /* ToDs = 0, FromDs = 0 */ @@ -252,7 +234,8 @@ static inline unsigned char *get_hdr_bssid(unsigned char *pframe) { struct ieee80211_hdr *hdr = (struct ieee80211_hdr *)pframe; unsigned char *sa = NULL; - unsigned int to_fr_ds = (GetToDs(pframe) << 1) | GetFrDs(pframe); + unsigned int to_fr_ds = (ieee80211_has_tods(hdr->frame_control) << 1) | + ieee80211_has_fromds(hdr->frame_control); switch (to_fr_ds) { case 0x00: /* ToDs = 0, FromDs = 0 */ @@ -317,8 +300,6 @@ static inline int IsFrameTypeCtrl(unsigned char *pframe) /*----------------------------------------------------------------------------- Below is the definition for 802.11n ------------------------------------------------------------------------------*/ -#define GetOrderBit(pbuf) (((*(unsigned short *)(pbuf)) & cpu_to_le16(_ORDER_)) != 0) - #define ACT_CAT_VENDOR 0x7F/* 127 */ /** -- 2.43.0