* [PATCH 0/3] staging: rtl8723bs: convert management transmit path to errno
@ 2026-07-31 7:05 Hungyu Lin
2026-07-31 7:05 ` [PATCH 1/3] staging: rtl8723bs: convert mgmt xmit coalesce " Hungyu Lin
` (2 more replies)
0 siblings, 3 replies; 7+ messages in thread
From: Hungyu Lin @ 2026-07-31 7:05 UTC (permalink / raw)
To: gregkh; +Cc: error27, linux-staging, linux-kernel, Hungyu Lin
This series converts the rtl8723bs management transmit path to use
kernel-style errno return values.
Patch 1 converts rtw_mgmt_xmitframe_coalesce() to return 0 on success
and negative errno on failure.
Patch 2 updates rtw_hal_mgnt_xmit() to propagate the coalesce result,
and updates the intermediate dump_mgntframe_and_wait() flow to match.
Patch 3 converts dump_mgntframe_and_wait() itself to return errno-style
values and updates its declaration accordingly.
Hungyu Lin (3):
staging: rtl8723bs: convert mgmt xmit coalesce to errno
staging: rtl8723bs: propagate errno handling for mgmt xmit
staging: rtl8723bs: convert dump mgnt path to errno
drivers/staging/rtl8723bs/core/rtw_mlme_ext.c | 9 ++++-----
drivers/staging/rtl8723bs/core/rtw_xmit.c | 8 ++++----
drivers/staging/rtl8723bs/hal/hal_intf.c | 9 +++++++--
drivers/staging/rtl8723bs/include/hal_intf.h | 2 +-
drivers/staging/rtl8723bs/include/rtw_mlme_ext.h | 2 +-
drivers/staging/rtl8723bs/include/rtw_xmit.h | 2 +-
6 files changed, 18 insertions(+), 14 deletions(-)
--
2.43.0
^ permalink raw reply [flat|nested] 7+ messages in thread
* [PATCH 1/3] staging: rtl8723bs: convert mgmt xmit coalesce to errno
2026-07-31 7:05 [PATCH 0/3] staging: rtl8723bs: convert management transmit path to errno Hungyu Lin
@ 2026-07-31 7:05 ` Hungyu Lin
2026-07-31 11:03 ` Dan Carpenter
2026-07-31 7:05 ` [PATCH 2/3] staging: rtl8723bs: propagate errno handling for mgmt xmit Hungyu Lin
2026-07-31 7:05 ` [PATCH 3/3] staging: rtl8723bs: convert dump mgnt path to errno Hungyu Lin
2 siblings, 1 reply; 7+ messages in thread
From: Hungyu Lin @ 2026-07-31 7:05 UTC (permalink / raw)
To: gregkh; +Cc: error27, linux-staging, linux-kernel, Hungyu Lin
Change rtw_mgmt_xmitframe_coalesce() to use kernel-style return values.
Return 0 on success and negative errno on failure, and update the
declaration in rtw_xmit.h accordingly
Signed-off-by: Hungyu Lin <dennylin0707@gmail.com>
---
drivers/staging/rtl8723bs/core/rtw_xmit.c | 8 ++++----
drivers/staging/rtl8723bs/include/rtw_xmit.h | 2 +-
2 files changed, 5 insertions(+), 5 deletions(-)
diff --git a/drivers/staging/rtl8723bs/core/rtw_xmit.c b/drivers/staging/rtl8723bs/core/rtw_xmit.c
index 16e6c9567224..01512f438295 100644
--- a/drivers/staging/rtl8723bs/core/rtw_xmit.c
+++ b/drivers/staging/rtl8723bs/core/rtw_xmit.c
@@ -1187,7 +1187,7 @@ int rtw_xmitframe_coalesce(struct adapter *padapter, struct sk_buff *pkt, struct
}
/* broadcast or multicast management pkt use BIP, unicast management pkt use CCMP encryption */
-s32 rtw_mgmt_xmitframe_coalesce(struct adapter *padapter, struct sk_buff *pkt, struct xmit_frame *pxmitframe)
+int rtw_mgmt_xmitframe_coalesce(struct adapter *padapter, struct sk_buff *pkt, struct xmit_frame *pxmitframe)
{
u8 *pframe, *mem_start = NULL, *tmp_buf = NULL;
u8 subtype;
@@ -1210,7 +1210,7 @@ s32 rtw_mgmt_xmitframe_coalesce(struct adapter *padapter, struct sk_buff *pkt, s
BIP_AAD = kzalloc(ori_len, GFP_ATOMIC);
if (!BIP_AAD)
- return _FAIL;
+ return -ENOMEM;
tmp_buf = BIP_AAD;
subtype = GetFrameSubType(pframe); /* bit(7)~bit(2) */
@@ -1341,12 +1341,12 @@ s32 rtw_mgmt_xmitframe_coalesce(struct adapter *padapter, struct sk_buff *pkt, s
xmitframe_coalesce_success:
spin_unlock_bh(&padapter->security_key_mutex);
kfree(BIP_AAD);
- return _SUCCESS;
+ return 0;
xmitframe_coalesce_fail:
spin_unlock_bh(&padapter->security_key_mutex);
kfree(BIP_AAD);
- return _FAIL;
+ return -EINVAL;
}
/* Logical Link Control(LLC) SubNetwork Attachment Point(SNAP) header
diff --git a/drivers/staging/rtl8723bs/include/rtw_xmit.h b/drivers/staging/rtl8723bs/include/rtw_xmit.h
index 917e846e9ce2..31decc210e73 100644
--- a/drivers/staging/rtl8723bs/include/rtw_xmit.h
+++ b/drivers/staging/rtl8723bs/include/rtw_xmit.h
@@ -424,7 +424,7 @@ int rtw_xmitframe_enqueue(struct adapter *padapter, struct xmit_frame *pxmitfram
extern u32 rtw_calculate_wlan_pkt_size_by_attribue(struct pkt_attrib *pattrib);
#define rtw_wlan_pkt_size(f) rtw_calculate_wlan_pkt_size_by_attribue(&f->attrib)
extern int rtw_xmitframe_coalesce(struct adapter *padapter, struct sk_buff *pkt, struct xmit_frame *pxmitframe);
-extern s32 rtw_mgmt_xmitframe_coalesce(struct adapter *padapter, struct sk_buff *pkt, struct xmit_frame *pxmitframe);
+extern int rtw_mgmt_xmitframe_coalesce(struct adapter *padapter, struct sk_buff *pkt, struct xmit_frame *pxmitframe);
s32 _rtw_init_hw_txqueue(struct hw_txqueue *phw_txqueue, u8 ac_tag);
void _rtw_init_sta_xmit_priv(struct sta_xmit_priv *psta_xmitpriv);
--
2.43.0
^ permalink raw reply related [flat|nested] 7+ messages in thread
* [PATCH 2/3] staging: rtl8723bs: propagate errno handling for mgmt xmit
2026-07-31 7:05 [PATCH 0/3] staging: rtl8723bs: convert management transmit path to errno Hungyu Lin
2026-07-31 7:05 ` [PATCH 1/3] staging: rtl8723bs: convert mgmt xmit coalesce " Hungyu Lin
@ 2026-07-31 7:05 ` Hungyu Lin
2026-07-31 11:02 ` Dan Carpenter
2026-07-31 7:05 ` [PATCH 3/3] staging: rtl8723bs: convert dump mgnt path to errno Hungyu Lin
2 siblings, 1 reply; 7+ messages in thread
From: Hungyu Lin @ 2026-07-31 7:05 UTC (permalink / raw)
To: gregkh; +Cc: error27, linux-staging, linux-kernel, Hungyu Lin
Convert rtw_hal_mgnt_xmit() to return errno-style values and update
dump_mgntframe_and_wait() to translate the result back to the existing
_SUCCESS/_FAIL flow. Update the prototype in hal_intf.h accordingly
Signed-off-by: Hungyu Lin <dennylin0707@gmail.com>
---
drivers/staging/rtl8723bs/core/rtw_mlme_ext.c | 4 ++++
drivers/staging/rtl8723bs/hal/hal_intf.c | 9 +++++++--
drivers/staging/rtl8723bs/include/hal_intf.h | 2 +-
3 files changed, 12 insertions(+), 3 deletions(-)
diff --git a/drivers/staging/rtl8723bs/core/rtw_mlme_ext.c b/drivers/staging/rtl8723bs/core/rtw_mlme_ext.c
index f5ab94a2d0a0..0027f9333738 100644
--- a/drivers/staging/rtl8723bs/core/rtw_mlme_ext.c
+++ b/drivers/staging/rtl8723bs/core/rtw_mlme_ext.c
@@ -1990,6 +1990,10 @@ s32 dump_mgntframe_and_wait(struct adapter *padapter, struct xmit_frame *pmgntfr
pxmitbuf->sctx = &sctx;
ret = rtw_hal_mgnt_xmit(padapter, pmgntframe);
+ if (ret)
+ ret = _FAIL;
+ else
+ ret = _SUCCESS;
if (ret == _SUCCESS)
ret = rtw_sctx_wait(&sctx);
diff --git a/drivers/staging/rtl8723bs/hal/hal_intf.c b/drivers/staging/rtl8723bs/hal/hal_intf.c
index 2caade1a8bdd..1443875d1369 100644
--- a/drivers/staging/rtl8723bs/hal/hal_intf.c
+++ b/drivers/staging/rtl8723bs/hal/hal_intf.c
@@ -115,8 +115,10 @@ s32 rtw_hal_xmit(struct adapter *padapter, struct xmit_frame *pxmitframe)
/*
* [IMPORTANT] This function would be run in interrupt context.
*/
-s32 rtw_hal_mgnt_xmit(struct adapter *padapter, struct xmit_frame *pmgntframe)
+int rtw_hal_mgnt_xmit(struct adapter *padapter, struct xmit_frame *pmgntframe)
{
+ int ret;
+
update_mgntframe_attrib_addr(padapter, pmgntframe);
/* pframe = (u8 *)(pmgntframe->buf_addr) + TXDESC_OFFSET; */
/* pwlanhdr = (struct rtw_ieee80211_hdr *)pframe; */
@@ -130,7 +132,10 @@ s32 rtw_hal_mgnt_xmit(struct adapter *padapter, struct xmit_frame *pmgntframe)
pmgntframe->attrib.encrypt = _AES_;
pmgntframe->attrib.bswenc = true;
}
- rtw_mgmt_xmitframe_coalesce(padapter, pmgntframe->pkt, pmgntframe);
+ ret = rtw_mgmt_xmitframe_coalesce(padapter, pmgntframe->pkt, pmgntframe);
+
+ if (ret)
+ return ret;
}
return rtl8723bs_mgnt_xmit(padapter, pmgntframe);
diff --git a/drivers/staging/rtl8723bs/include/hal_intf.h b/drivers/staging/rtl8723bs/include/hal_intf.h
index 8a85e8419e47..1b6b348435cb 100644
--- a/drivers/staging/rtl8723bs/include/hal_intf.h
+++ b/drivers/staging/rtl8723bs/include/hal_intf.h
@@ -197,7 +197,7 @@ u8 rtw_hal_check_ips_status(struct adapter *padapter);
int rtw_hal_xmitframe_enqueue(struct adapter *padapter, struct xmit_frame *pxmitframe);
s32 rtw_hal_xmit(struct adapter *padapter, struct xmit_frame *pxmitframe);
-s32 rtw_hal_mgnt_xmit(struct adapter *padapter, struct xmit_frame *pmgntframe);
+int rtw_hal_mgnt_xmit(struct adapter *padapter, struct xmit_frame *pmgntframe);
s32 rtw_hal_init_xmit_priv(struct adapter *padapter);
void rtw_hal_free_xmit_priv(struct adapter *padapter);
--
2.43.0
^ permalink raw reply related [flat|nested] 7+ messages in thread
* [PATCH 3/3] staging: rtl8723bs: convert dump mgnt path to errno
2026-07-31 7:05 [PATCH 0/3] staging: rtl8723bs: convert management transmit path to errno Hungyu Lin
2026-07-31 7:05 ` [PATCH 1/3] staging: rtl8723bs: convert mgmt xmit coalesce " Hungyu Lin
2026-07-31 7:05 ` [PATCH 2/3] staging: rtl8723bs: propagate errno handling for mgmt xmit Hungyu Lin
@ 2026-07-31 7:05 ` Hungyu Lin
2026-07-31 11:04 ` Dan Carpenter
2 siblings, 1 reply; 7+ messages in thread
From: Hungyu Lin @ 2026-07-31 7:05 UTC (permalink / raw)
To: gregkh; +Cc: error27, linux-staging, linux-kernel, Hungyu Lin
Convert dump_mgntframe_and_wait() to return errno-style values and
update its declaration in rtw_mlme_ext.h.
Signed-off-by: Hungyu Lin <dennylin0707@gmail.com>
---
drivers/staging/rtl8723bs/core/rtw_mlme_ext.c | 13 ++++---------
drivers/staging/rtl8723bs/include/rtw_mlme_ext.h | 2 +-
2 files changed, 5 insertions(+), 10 deletions(-)
diff --git a/drivers/staging/rtl8723bs/core/rtw_mlme_ext.c b/drivers/staging/rtl8723bs/core/rtw_mlme_ext.c
index 0027f9333738..da74184fd07e 100644
--- a/drivers/staging/rtl8723bs/core/rtw_mlme_ext.c
+++ b/drivers/staging/rtl8723bs/core/rtw_mlme_ext.c
@@ -1971,9 +1971,9 @@ void dump_mgntframe(struct adapter *padapter, struct xmit_frame *pmgntframe)
rtw_hal_mgnt_xmit(padapter, pmgntframe);
}
-s32 dump_mgntframe_and_wait(struct adapter *padapter, struct xmit_frame *pmgntframe, int timeout_ms)
+int dump_mgntframe_and_wait(struct adapter *padapter, struct xmit_frame *pmgntframe, int timeout_ms)
{
- s32 ret = _FAIL;
+ int ret;
unsigned long irqL;
struct xmit_priv *pxmitpriv = &padapter->xmitpriv;
struct xmit_buf *pxmitbuf = pmgntframe->pxmitbuf;
@@ -1983,19 +1983,14 @@ s32 dump_mgntframe_and_wait(struct adapter *padapter, struct xmit_frame *pmgntfr
padapter->bDriverStopped) {
rtw_free_xmitbuf(&padapter->xmitpriv, pmgntframe->pxmitbuf);
rtw_free_xmitframe(&padapter->xmitpriv, pmgntframe);
- return ret;
+ return -ENODEV;
}
rtw_sctx_init(&sctx, timeout_ms);
pxmitbuf->sctx = &sctx;
ret = rtw_hal_mgnt_xmit(padapter, pmgntframe);
- if (ret)
- ret = _FAIL;
- else
- ret = _SUCCESS;
-
- if (ret == _SUCCESS)
+ if (!ret)
ret = rtw_sctx_wait(&sctx);
spin_lock_irqsave(&pxmitpriv->lock_sctx, irqL);
diff --git a/drivers/staging/rtl8723bs/include/rtw_mlme_ext.h b/drivers/staging/rtl8723bs/include/rtw_mlme_ext.h
index 0c2bd51b6bc2..c2993e442d80 100644
--- a/drivers/staging/rtl8723bs/include/rtw_mlme_ext.h
+++ b/drivers/staging/rtl8723bs/include/rtw_mlme_ext.h
@@ -533,7 +533,7 @@ void update_mgnt_tx_rate(struct adapter *padapter, u8 rate);
void update_mgntframe_attrib(struct adapter *padapter, struct pkt_attrib *pattrib);
void update_mgntframe_attrib_addr(struct adapter *padapter, struct xmit_frame *pmgntframe);
void dump_mgntframe(struct adapter *padapter, struct xmit_frame *pmgntframe);
-s32 dump_mgntframe_and_wait(struct adapter *padapter, struct xmit_frame *pmgntframe, int timeout_ms);
+int dump_mgntframe_and_wait(struct adapter *padapter, struct xmit_frame *pmgntframe, int timeout_ms);
s32 dump_mgntframe_and_wait_ack(struct adapter *padapter, struct xmit_frame *pmgntframe);
void issue_beacon(struct adapter *padapter, int timeout_ms);
--
2.43.0
^ permalink raw reply related [flat|nested] 7+ messages in thread
* Re: [PATCH 2/3] staging: rtl8723bs: propagate errno handling for mgmt xmit
2026-07-31 7:05 ` [PATCH 2/3] staging: rtl8723bs: propagate errno handling for mgmt xmit Hungyu Lin
@ 2026-07-31 11:02 ` Dan Carpenter
0 siblings, 0 replies; 7+ messages in thread
From: Dan Carpenter @ 2026-07-31 11:02 UTC (permalink / raw)
To: Hungyu Lin; +Cc: gregkh, linux-staging, linux-kernel
On Fri, Jul 31, 2026 at 07:05:45AM +0000, Hungyu Lin wrote:
> Convert rtw_hal_mgnt_xmit() to return errno-style values and update
> dump_mgntframe_and_wait() to translate the result back to the existing
> _SUCCESS/_FAIL flow. Update the prototype in hal_intf.h accordingly
>
> Signed-off-by: Hungyu Lin <dennylin0707@gmail.com>
> ---
> drivers/staging/rtl8723bs/core/rtw_mlme_ext.c | 4 ++++
> drivers/staging/rtl8723bs/hal/hal_intf.c | 9 +++++++--
> drivers/staging/rtl8723bs/include/hal_intf.h | 2 +-
> 3 files changed, 12 insertions(+), 3 deletions(-)
>
> diff --git a/drivers/staging/rtl8723bs/core/rtw_mlme_ext.c b/drivers/staging/rtl8723bs/core/rtw_mlme_ext.c
> index f5ab94a2d0a0..0027f9333738 100644
> --- a/drivers/staging/rtl8723bs/core/rtw_mlme_ext.c
> +++ b/drivers/staging/rtl8723bs/core/rtw_mlme_ext.c
> @@ -1990,6 +1990,10 @@ s32 dump_mgntframe_and_wait(struct adapter *padapter, struct xmit_frame *pmgntfr
> pxmitbuf->sctx = &sctx;
>
> ret = rtw_hal_mgnt_xmit(padapter, pmgntframe);
> + if (ret)
> + ret = _FAIL;
> + else
> + ret = _SUCCESS;
>
> if (ret == _SUCCESS)
> ret = rtw_sctx_wait(&sctx);
This is awkward. I would have allowed it either way, but it's good
to note this kind of thing in the commit message:
"After this change the error checking in dump_mgntframe_and_wait()
becomes quite awkward because we need to convert zero to _SUCCESS (1)
and negative error codes to _FAIL (0). A follow on patch will
change the dump_mgntframe_and_wait() to use kernel error codes
consistently."
regards,
dan carpenter
^ permalink raw reply [flat|nested] 7+ messages in thread
* Re: [PATCH 1/3] staging: rtl8723bs: convert mgmt xmit coalesce to errno
2026-07-31 7:05 ` [PATCH 1/3] staging: rtl8723bs: convert mgmt xmit coalesce " Hungyu Lin
@ 2026-07-31 11:03 ` Dan Carpenter
0 siblings, 0 replies; 7+ messages in thread
From: Dan Carpenter @ 2026-07-31 11:03 UTC (permalink / raw)
To: Hungyu Lin; +Cc: gregkh, linux-staging, linux-kernel
On Fri, Jul 31, 2026 at 07:05:44AM +0000, Hungyu Lin wrote:
> Change rtw_mgmt_xmitframe_coalesce() to use kernel-style return values.
> Return 0 on success and negative errno on failure, and update the
> declaration in rtw_xmit.h accordingly
>
> Signed-off-by: Hungyu Lin <dennylin0707@gmail.com>
Ideally the commit message would explain that "This is safe because
the only caller doesn't check for errors". But then the question
is "why don't we just make this a void function?" and the answer
is that this shouldn't be a void function, the caller really ought
to check for errors.
Change rtw_mgmt_xmitframe_coalesce() to use kernel-style return values.
Return 0 on success and negative errno on failure. The caller doesn't
check for errors so this doesn't affect runtime. Later patches will
hopefully add error checking.
regards,
dan carpenter
^ permalink raw reply [flat|nested] 7+ messages in thread
* Re: [PATCH 3/3] staging: rtl8723bs: convert dump mgnt path to errno
2026-07-31 7:05 ` [PATCH 3/3] staging: rtl8723bs: convert dump mgnt path to errno Hungyu Lin
@ 2026-07-31 11:04 ` Dan Carpenter
0 siblings, 0 replies; 7+ messages in thread
From: Dan Carpenter @ 2026-07-31 11:04 UTC (permalink / raw)
To: Hungyu Lin; +Cc: gregkh, linux-staging, linux-kernel
On Fri, Jul 31, 2026 at 07:05:46AM +0000, Hungyu Lin wrote:
> Convert dump_mgntframe_and_wait() to return errno-style values and
> update its declaration in rtw_mlme_ext.h.
>
> Signed-off-by: Hungyu Lin <dennylin0707@gmail.com>
> ---
> drivers/staging/rtl8723bs/core/rtw_mlme_ext.c | 13 ++++---------
> drivers/staging/rtl8723bs/include/rtw_mlme_ext.h | 2 +-
> 2 files changed, 5 insertions(+), 10 deletions(-)
>
> diff --git a/drivers/staging/rtl8723bs/core/rtw_mlme_ext.c b/drivers/staging/rtl8723bs/core/rtw_mlme_ext.c
> index 0027f9333738..da74184fd07e 100644
> --- a/drivers/staging/rtl8723bs/core/rtw_mlme_ext.c
> +++ b/drivers/staging/rtl8723bs/core/rtw_mlme_ext.c
> @@ -1971,9 +1971,9 @@ void dump_mgntframe(struct adapter *padapter, struct xmit_frame *pmgntframe)
> rtw_hal_mgnt_xmit(padapter, pmgntframe);
> }
>
> -s32 dump_mgntframe_and_wait(struct adapter *padapter, struct xmit_frame *pmgntframe, int timeout_ms)
> +int dump_mgntframe_and_wait(struct adapter *padapter, struct xmit_frame *pmgntframe, int timeout_ms)
This is like patch 1 where nothing checks for errors. I feel like
the right thing here is to change it to a void function. (Based on
the "dump" in the name and not based on careful reading).
Either way it probably should have an explanation in the commit
message.
regards,
dan carpenter
^ permalink raw reply [flat|nested] 7+ messages in thread
end of thread, other threads:[~2026-07-31 11:04 UTC | newest]
Thread overview: 7+ messages (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
2026-07-31 7:05 [PATCH 0/3] staging: rtl8723bs: convert management transmit path to errno Hungyu Lin
2026-07-31 7:05 ` [PATCH 1/3] staging: rtl8723bs: convert mgmt xmit coalesce " Hungyu Lin
2026-07-31 11:03 ` Dan Carpenter
2026-07-31 7:05 ` [PATCH 2/3] staging: rtl8723bs: propagate errno handling for mgmt xmit Hungyu Lin
2026-07-31 11:02 ` Dan Carpenter
2026-07-31 7:05 ` [PATCH 3/3] staging: rtl8723bs: convert dump mgnt path to errno Hungyu Lin
2026-07-31 11:04 ` Dan Carpenter
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox