All of lore.kernel.org
 help / color / mirror / Atom feed
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


             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.