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