From: Rishik Yechuri <epicrishik@gmail.com>
To: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
Cc: linux-staging@lists.linux.dev, linux-kernel@vger.kernel.org,
Rishik Yechuri <rishik.yechuri.code@gmail.com>
Subject: [PATCH 00/10] staging: rtl8723bs: replace private 802.11 header macros with generic helpers
Date: Tue, 13 Oct 2026 15:15:28 -0500 [thread overview]
Message-ID: <20261013201538.43156-1-rishik.yechuri.code@gmail.com> (raw)
The rtl8723bs driver has its own set of macros and inline functions in
wifi.h for working with 802.11 frame headers. They access the header
through hardcoded byte offsets and pointer casts, and they duplicate
struct ieee80211_hdr and the helpers in <linux/ieee80211.h> that
mac80211, cfg80211 and other wireless drivers already use.
This series switches the driver over to the generic versions and
deletes the private ones from wifi.h. Each patch converts one group of
macros and removes their definitions once nothing uses them anymore,
so the driver builds after every patch.
Patches 1 to 3 convert header address access and the Frame Control
flag checks and updates.
Patches 4 and 5 convert the frame type and subtype checks. Single
comparisons use the ieee80211_is_*() helpers, and switch statements
mask frame_control with IEEE80211_FCTL_* and use IEEE80211_STYPE_*
case labels, the same way mac80211 does.
Patch 6 removes an unused struct member. Its initialisers were the
last users of a few private subtype constants that have no generic
equivalent.
Patch 7 converts the frame subtype setter and removes the private
WIFI_* frame type enum.
Patches 8 and 9 convert the Sequence Control, Duration/ID and QoS
Control fields.
Patch 10 replaces the driver's destination and source address
helpers with ieee80211_get_DA() and ieee80211_get_SA().
None of this should change behaviour. In the few places where a
generic helper checks more than the code it replaces, or where the old
macro kept bits that a plain assignment would overwrite, the commit
message explains why the result is the same.
Compile tested with W=1 after each patch, and checked with checkpatch
and smatch. I don't have a device with this chip, so it has not been
tested on hardware.
Rishik Yechuri (10):
staging: rtl8723bs: use struct ieee80211_hdr for header addresses
staging: rtl8723bs: use ieee80211_has_*() to test frame control flags
staging: rtl8723bs: set frame control flags with IEEE80211_FCTL_*
masks
staging: rtl8723bs: use ieee80211_is_*() for frame type tests
staging: rtl8723bs: use IEEE80211_FCTL_* masks for frame type dispatch
staging: rtl8723bs: remove unused num member from struct mlme_handler
staging: rtl8723bs: use IEEE80211_FTYPE_* and IEEE80211_STYPE_* values
staging: rtl8723bs: use struct ieee80211_hdr for seq_ctrl and
duration_id
staging: rtl8723bs: use IEEE80211_QOS_CTL_* masks for QoS control
staging: rtl8723bs: use ieee80211_get_DA() and ieee80211_get_SA()
drivers/staging/rtl8723bs/core/rtw_mlme_ext.c | 254 ++++++++---------
drivers/staging/rtl8723bs/core/rtw_recv.c | 134 ++++-----
drivers/staging/rtl8723bs/core/rtw_security.c | 41 +--
.../staging/rtl8723bs/core/rtw_wlan_util.c | 7 +-
drivers/staging/rtl8723bs/core/rtw_xmit.c | 75 +++---
drivers/staging/rtl8723bs/hal/rtl8723b_cmd.c | 42 +--
.../staging/rtl8723bs/hal/rtl8723bs_recv.c | 9 +-
.../staging/rtl8723bs/hal/rtl8723bs_xmit.c | 3 +-
.../staging/rtl8723bs/include/rtw_mlme_ext.h | 1 -
drivers/staging/rtl8723bs/include/wifi.h | 255 +-----------------
.../staging/rtl8723bs/os_dep/ioctl_cfg80211.c | 19 +-
11 files changed, 319 insertions(+), 521 deletions(-)
--
2.43.0
next reply other threads:[~2026-10-13 20:15 UTC|newest]
Thread overview: 11+ messages / expand[flat|nested] mbox.gz Atom feed top
2026-10-13 20:15 Rishik Yechuri [this message]
2026-10-13 20:15 ` [PATCH 01/10] staging: rtl8723bs: use struct ieee80211_hdr for header addresses Rishik Yechuri
2026-10-13 20:15 ` [PATCH 02/10] staging: rtl8723bs: use ieee80211_has_*() to test frame control flags Rishik Yechuri
2026-10-13 20:15 ` [PATCH 03/10] staging: rtl8723bs: set frame control flags with IEEE80211_FCTL_* masks Rishik Yechuri
2026-10-13 20:15 ` [PATCH 04/10] staging: rtl8723bs: use ieee80211_is_*() for frame type tests Rishik Yechuri
2026-10-13 20:15 ` [PATCH 05/10] staging: rtl8723bs: use IEEE80211_FCTL_* masks for frame type dispatch Rishik Yechuri
2026-10-13 20:15 ` [PATCH 06/10] staging: rtl8723bs: remove unused num member from struct mlme_handler Rishik Yechuri
2026-10-13 20:15 ` [PATCH 07/10] staging: rtl8723bs: use IEEE80211_FTYPE_* and IEEE80211_STYPE_* values Rishik Yechuri
2026-10-13 20:15 ` [PATCH 08/10] staging: rtl8723bs: use struct ieee80211_hdr for seq_ctrl and duration_id Rishik Yechuri
2026-10-13 20:15 ` [PATCH 09/10] staging: rtl8723bs: use IEEE80211_QOS_CTL_* masks for QoS control Rishik Yechuri
2026-10-13 20:15 ` [PATCH 10/10] staging: rtl8723bs: use ieee80211_get_DA() and ieee80211_get_SA() Rishik Yechuri
Reply instructions:
You may reply publicly to this message via plain-text email
using any one of the following methods:
* Save the following mbox file, import it into your mail client,
and reply-to-all from there: mbox
Avoid top-posting and favor interleaved quoting:
https://en.wikipedia.org/wiki/Posting_style#Interleaved_style
* Reply using the --to, --cc, and --in-reply-to
switches of git-send-email(1):
git send-email \
--in-reply-to=20261013201538.43156-1-rishik.yechuri.code@gmail.com \
--to=epicrishik@gmail.com \
--cc=gregkh@linuxfoundation.org \
--cc=linux-kernel@vger.kernel.org \
--cc=linux-staging@lists.linux.dev \
--cc=rishik.yechuri.code@gmail.com \
/path/to/YOUR_REPLY
https://kernel.org/pub/software/scm/git/docs/git-send-email.html
* If your mail client supports setting the In-Reply-To header
via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line
before the message body.
This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.