Linux kernel staging patches
 help / color / mirror / Atom feed
* [PATCH 00/10] staging: rtl8723bs: replace private 802.11 header macros with generic helpers
@ 2026-10-13 20:15 Rishik Yechuri
  2026-10-13 20:15 ` [PATCH 01/10] staging: rtl8723bs: use struct ieee80211_hdr for header addresses Rishik Yechuri
                   ` (9 more replies)
  0 siblings, 10 replies; 11+ messages in thread
From: Rishik Yechuri @ 2026-10-13 20:15 UTC (permalink / raw)
  To: Greg Kroah-Hartman; +Cc: linux-staging, linux-kernel, Rishik Yechuri

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


^ permalink raw reply	[flat|nested] 11+ messages in thread

end of thread, other threads:[~2026-10-13 20:16 UTC | newest]

Thread overview: 11+ messages (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
2026-10-13 20:15 [PATCH 00/10] staging: rtl8723bs: replace private 802.11 header macros with generic helpers Rishik Yechuri
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

This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox