[PATCH 4/5] staging: rtl8723bs: propagate errno through xmit enqueue path
From: Hungyu Lin
Date: Thu May 14 2026 - 02:05:16 EST
Propagate errno values from rtw_xmit_classifier() through
rtw_xmitframe_enqueue(), and update the local enqueue caller
to check for non-zero return values.
Signed-off-by: Hungyu Lin <dennylin0707@xxxxxxxxx>
---
drivers/staging/rtl8723bs/core/rtw_xmit.c | 6 +++---
drivers/staging/rtl8723bs/hal/rtl8723bs_xmit.c | 10 +++++-----
drivers/staging/rtl8723bs/include/rtw_xmit.h | 2 +-
3 files changed, 9 insertions(+), 9 deletions(-)
diff --git a/drivers/staging/rtl8723bs/core/rtw_xmit.c b/drivers/staging/rtl8723bs/core/rtw_xmit.c
index 80f3dfaf793d..054cb4c9d1de 100644
--- a/drivers/staging/rtl8723bs/core/rtw_xmit.c
+++ b/drivers/staging/rtl8723bs/core/rtw_xmit.c
@@ -1855,15 +1855,15 @@ static int rtw_xmit_classifier(struct adapter *padapter, struct xmit_frame *pxmi
return 0;
}
-s32 rtw_xmitframe_enqueue(struct adapter *padapter, struct xmit_frame *pxmitframe)
+int rtw_xmitframe_enqueue(struct adapter *padapter, struct xmit_frame *pxmitframe)
{
int res;
res = rtw_xmit_classifier(padapter, pxmitframe);
if (res)
- return _FAIL;
+ return res;
- return _SUCCESS;
+ return 0;
}
struct tx_servq *rtw_get_sta_pending(struct adapter *padapter, struct sta_info *psta, signed int up, u8 *ac)
diff --git a/drivers/staging/rtl8723bs/hal/rtl8723bs_xmit.c b/drivers/staging/rtl8723bs/hal/rtl8723bs_xmit.c
index a7f23335cdd9..ff82b6efefc7 100644
--- a/drivers/staging/rtl8723bs/hal/rtl8723bs_xmit.c
+++ b/drivers/staging/rtl8723bs/hal/rtl8723bs_xmit.c
@@ -464,8 +464,8 @@ s32 rtl8723bs_mgnt_xmit(
*Handle xmitframe(packet) come from rtw_xmit()
*
* Return:
- *true dump packet directly ok
- *false enqueue, temporary can't transmit packets to hardware
+ * true dump packet directly ok
+ * false enqueue, temporary can't transmit packets to hardware
*/
s32 rtl8723bs_hal_xmit(
struct adapter *padapter, struct xmit_frame *pxmitframe
@@ -491,7 +491,7 @@ s32 rtl8723bs_hal_xmit(
spin_lock_bh(&pxmitpriv->lock);
err = rtw_xmitframe_enqueue(padapter, pxmitframe);
spin_unlock_bh(&pxmitpriv->lock);
- if (err != _SUCCESS) {
+ if (err) {
rtw_free_xmitframe(pxmitpriv, pxmitframe);
pxmitpriv->tx_drop++;
@@ -511,7 +511,7 @@ s32 rtl8723bs_hal_xmitframe_enqueue(
s32 err;
err = rtw_xmitframe_enqueue(padapter, pxmitframe);
- if (err != _SUCCESS) {
+ if (err) {
rtw_free_xmitframe(pxmitpriv, pxmitframe);
pxmitpriv->tx_drop++;
@@ -519,7 +519,7 @@ s32 rtl8723bs_hal_xmitframe_enqueue(
complete(&pxmitpriv->SdioXmitStart);
}
- return err;
+ return err ? _FAIL : _SUCCESS;
}
diff --git a/drivers/staging/rtl8723bs/include/rtw_xmit.h b/drivers/staging/rtl8723bs/include/rtw_xmit.h
index a2ff62182b97..b13f16716e98 100644
--- a/drivers/staging/rtl8723bs/include/rtw_xmit.h
+++ b/drivers/staging/rtl8723bs/include/rtw_xmit.h
@@ -438,7 +438,7 @@ struct xmit_frame *rtw_alloc_xmitframe_once(struct xmit_priv *pxmitpriv);
extern s32 rtw_free_xmitframe(struct xmit_priv *pxmitpriv, struct xmit_frame *pxmitframe);
extern void rtw_free_xmitframe_queue(struct xmit_priv *pxmitpriv, struct __queue *pframequeue);
struct tx_servq *rtw_get_sta_pending(struct adapter *padapter, struct sta_info *psta, signed int up, u8 *ac);
-extern s32 rtw_xmitframe_enqueue(struct adapter *padapter, struct xmit_frame *pxmitframe);
+int rtw_xmitframe_enqueue(struct adapter *padapter, struct xmit_frame *pxmitframe);
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)
--
2.34.1