mirror of https://lore.kernel.org/lkml/
 help / color / mirror / Atom feed
* [PATCH v2] staging: rtl8723bs: use errno in rtw_register_tx_alive()
@ 2026-10-01 10:03 Hungyu Lin
  2026-10-01 11:17 ` Greg Kroah-Hartman
  0 siblings, 1 reply; 4+ messages in thread
From: Hungyu Lin @ 2026-10-01 10:03 UTC (permalink / raw)
  To: Greg Kroah-Hartman; +Cc: Dan Carpenter, linux-staging, linux-kernel, Hungyu Lin

rtw_register_tx_alive() uses the driver-specific _SUCCESS and _FAIL
values to report whether the transmit path can continue.

Use the usual kernel convention of returning 0 on success and -EAGAIN
when the transmit path cannot proceed yet. Update the caller
accordingly.

No functional change.

Signed-off-by: Hungyu Lin <dennylin0707@gmail.com>
---
Changes in v2:
- Use the standard 0/-errno return convention instead of bool, as
  suggested by Greg.
- Return -EAGAIN when the transmit path cannot proceed yet.

 drivers/staging/rtl8723bs/core/rtw_pwrctrl.c    | 13 ++++++-------
 drivers/staging/rtl8723bs/hal/rtl8723bs_xmit.c  |  3 +--
 drivers/staging/rtl8723bs/include/rtw_pwrctrl.h |  2 +-
 3 files changed, 8 insertions(+), 10 deletions(-)

diff --git a/drivers/staging/rtl8723bs/core/rtw_pwrctrl.c b/drivers/staging/rtl8723bs/core/rtw_pwrctrl.c
index 448611ad8237..00d64b2ff89e 100644
--- a/drivers/staging/rtl8723bs/core/rtw_pwrctrl.c
+++ b/drivers/staging/rtl8723bs/core/rtw_pwrctrl.c
@@ -771,13 +771,12 @@ void rtw_unregister_task_alive(struct adapter *padapter, u32 task)
  * _SUCCESS	rtw_xmit_thread can write fifo/txcmd afterwards.
  * _FAIL		rtw_xmit_thread can not do anything.
  */
-s32 rtw_register_tx_alive(struct adapter *padapter)
+int rtw_register_tx_alive(struct adapter *padapter)
 {
-	s32 res;
+	int ret = 0;
 	struct pwrctrl_priv *pwrctrl;
 	u8 pslv;
 
-	res = _SUCCESS;
 	pwrctrl = adapter_to_pwrctl(padapter);
 	pslv = PS_STATE_S2;
 
@@ -788,7 +787,7 @@ s32 rtw_register_tx_alive(struct adapter *padapter)
 	if (pwrctrl->fw_current_in_ps_mode) {
 		if (pwrctrl->cpwm < pslv) {
 			if (pwrctrl->cpwm < PS_STATE_S2)
-				res = _FAIL;
+				ret = -EAGAIN;
 			if (pwrctrl->rpwm < pslv)
 				rtw_set_rpwm(padapter, pslv);
 		}
@@ -796,11 +795,11 @@ s32 rtw_register_tx_alive(struct adapter *padapter)
 
 	mutex_unlock(&pwrctrl->lock);
 
-	if (res == _FAIL)
+	if (ret)
 		if (pwrctrl->cpwm >= PS_STATE_S2)
-			res = _SUCCESS;
+			ret = 0;
 
-	return res;
+	return ret;
 }
 
 /*
diff --git a/drivers/staging/rtl8723bs/hal/rtl8723bs_xmit.c b/drivers/staging/rtl8723bs/hal/rtl8723bs_xmit.c
index 0441e84ea87d..77e5adc8731e 100644
--- a/drivers/staging/rtl8723bs/hal/rtl8723bs_xmit.c
+++ b/drivers/staging/rtl8723bs/hal/rtl8723bs_xmit.c
@@ -140,9 +140,8 @@ s32 rtl8723bs_xmit_buf_handler(struct adapter *padapter)
 		return _SUCCESS;
 
 	ret = rtw_register_tx_alive(padapter);
-	if (ret != _SUCCESS) {
+	if (ret)
 		return _SUCCESS;
-	}
 
 	do {
 		queue_empty = rtl8723_dequeue_writeport(padapter);
diff --git a/drivers/staging/rtl8723bs/include/rtw_pwrctrl.h b/drivers/staging/rtl8723bs/include/rtw_pwrctrl.h
index 49f19b6ee329..a14da6c18201 100644
--- a/drivers/staging/rtl8723bs/include/rtw_pwrctrl.h
+++ b/drivers/staging/rtl8723bs/include/rtw_pwrctrl.h
@@ -217,7 +217,7 @@ void rtw_free_pwrctrl_priv(struct adapter *adapter);
 
 s32 rtw_register_task_alive(struct adapter *adapter, u32 task);
 void rtw_unregister_task_alive(struct adapter *adapter, u32 task);
-s32 rtw_register_tx_alive(struct adapter *padapter);
+int rtw_register_tx_alive(struct adapter *padapter);
 void rtw_unregister_tx_alive(struct adapter *padapter);
 s32 rtw_register_cmd_alive(struct adapter *padapter);
 void rtw_unregister_cmd_alive(struct adapter *padapter);
-- 
2.43.0


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

* Re: [PATCH v2] staging: rtl8723bs: use errno in rtw_register_tx_alive()
  2026-10-01 10:03 [PATCH v2] staging: rtl8723bs: use errno in rtw_register_tx_alive() Hungyu Lin
@ 2026-10-01 11:17 ` Greg Kroah-Hartman
  2026-10-01 11:56   ` Hungyu Lin
  0 siblings, 1 reply; 4+ messages in thread
From: Greg Kroah-Hartman @ 2026-10-01 11:17 UTC (permalink / raw)
  To: Hungyu Lin; +Cc: Dan Carpenter, linux-staging, linux-kernel

On Thu, Oct 01, 2026 at 10:03:19AM +0000, Hungyu Lin wrote:
> rtw_register_tx_alive() uses the driver-specific _SUCCESS and _FAIL
> values to report whether the transmit path can continue.
> 
> Use the usual kernel convention of returning 0 on success and -EAGAIN
> when the transmit path cannot proceed yet. Update the caller
> accordingly.
> 
> No functional change.
> 
> Signed-off-by: Hungyu Lin <dennylin0707@gmail.com>
> ---
> Changes in v2:
> - Use the standard 0/-errno return convention instead of bool, as
>   suggested by Greg.
> - Return -EAGAIN when the transmit path cannot proceed yet.
> 
>  drivers/staging/rtl8723bs/core/rtw_pwrctrl.c    | 13 ++++++-------
>  drivers/staging/rtl8723bs/hal/rtl8723bs_xmit.c  |  3 +--
>  drivers/staging/rtl8723bs/include/rtw_pwrctrl.h |  2 +-
>  3 files changed, 8 insertions(+), 10 deletions(-)
> 
> diff --git a/drivers/staging/rtl8723bs/core/rtw_pwrctrl.c b/drivers/staging/rtl8723bs/core/rtw_pwrctrl.c
> index 448611ad8237..00d64b2ff89e 100644
> --- a/drivers/staging/rtl8723bs/core/rtw_pwrctrl.c
> +++ b/drivers/staging/rtl8723bs/core/rtw_pwrctrl.c
> @@ -771,13 +771,12 @@ void rtw_unregister_task_alive(struct adapter *padapter, u32 task)
>   * _SUCCESS	rtw_xmit_thread can write fifo/txcmd afterwards.
>   * _FAIL		rtw_xmit_thread can not do anything.
>   */
> -s32 rtw_register_tx_alive(struct adapter *padapter)
> +int rtw_register_tx_alive(struct adapter *padapter)
>  {
> -	s32 res;
> +	int ret = 0;
>  	struct pwrctrl_priv *pwrctrl;
>  	u8 pslv;
>  
> -	res = _SUCCESS;
>  	pwrctrl = adapter_to_pwrctl(padapter);
>  	pslv = PS_STATE_S2;
>  
> @@ -788,7 +787,7 @@ s32 rtw_register_tx_alive(struct adapter *padapter)
>  	if (pwrctrl->fw_current_in_ps_mode) {
>  		if (pwrctrl->cpwm < pslv) {
>  			if (pwrctrl->cpwm < PS_STATE_S2)
> -				res = _FAIL;
> +				ret = -EAGAIN;
>  			if (pwrctrl->rpwm < pslv)
>  				rtw_set_rpwm(padapter, pslv);
>  		}
> @@ -796,11 +795,11 @@ s32 rtw_register_tx_alive(struct adapter *padapter)
>  
>  	mutex_unlock(&pwrctrl->lock);
>  
> -	if (res == _FAIL)
> +	if (ret)
>  		if (pwrctrl->cpwm >= PS_STATE_S2)
> -			res = _SUCCESS;
> +			ret = 0;
>  
> -	return res;
> +	return ret;
>  }
>  
>  /*
> diff --git a/drivers/staging/rtl8723bs/hal/rtl8723bs_xmit.c b/drivers/staging/rtl8723bs/hal/rtl8723bs_xmit.c
> index 0441e84ea87d..77e5adc8731e 100644
> --- a/drivers/staging/rtl8723bs/hal/rtl8723bs_xmit.c
> +++ b/drivers/staging/rtl8723bs/hal/rtl8723bs_xmit.c
> @@ -140,9 +140,8 @@ s32 rtl8723bs_xmit_buf_handler(struct adapter *padapter)
>  		return _SUCCESS;
>  
>  	ret = rtw_register_tx_alive(padapter);
> -	if (ret != _SUCCESS) {
> +	if (ret)
>  		return _SUCCESS;
> -	}

Why are we returning success if there is an error?

thanks,

greg k-h

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

* Re: [PATCH v2] staging: rtl8723bs: use errno in rtw_register_tx_alive()
  2026-10-01 11:17 ` Greg Kroah-Hartman
@ 2026-10-01 11:56   ` Hungyu Lin
  2026-10-01 12:12     ` Greg Kroah-Hartman
  0 siblings, 1 reply; 4+ messages in thread
From: Hungyu Lin @ 2026-10-01 11:56 UTC (permalink / raw)
  To: Greg Kroah-Hartman; +Cc: Dan Carpenter, linux-staging, linux-kernel

> Why are we returning success if there is an error?

The original _FAIL means the firmware is not ready for TX yet.
XMIT_ALIVE has already been set, and the buffers stay queued.
cpwm_int_hdl() uses that bit to wake the TX thread once the power
state reaches S2.

_SUCCESS here lets rtw_xmit_thread() go back to waiting on xmit_comp.
Returning -EAGAIN instead would stop the thread.

I should have explained this in the commit message. Would handling
-EAGAIN explicitly here, with a comment explaining the retry, be
appropriate?

Thanks,
Hungyu Lin

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

* Re: [PATCH v2] staging: rtl8723bs: use errno in rtw_register_tx_alive()
  2026-10-01 11:56   ` Hungyu Lin
@ 2026-10-01 12:12     ` Greg Kroah-Hartman
  0 siblings, 0 replies; 4+ messages in thread
From: Greg Kroah-Hartman @ 2026-10-01 12:12 UTC (permalink / raw)
  To: Hungyu Lin; +Cc: Dan Carpenter, linux-staging, linux-kernel

On Thu, Oct 01, 2026 at 04:56:43AM -0700, Hungyu Lin wrote:
> > Why are we returning success if there is an error?
> 
> The original _FAIL means the firmware is not ready for TX yet.
> XMIT_ALIVE has already been set, and the buffers stay queued.
> cpwm_int_hdl() uses that bit to wake the TX thread once the power
> state reaches S2.
> 
> _SUCCESS here lets rtw_xmit_thread() go back to waiting on xmit_comp.
> Returning -EAGAIN instead would stop the thread.
> 
> I should have explained this in the commit message. Would handling
> -EAGAIN explicitly here, with a comment explaining the retry, be
> appropriate?

Please do.

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

end of thread, other threads:[~2026-10-01 12:12 UTC | newest]

Thread overview: 4+ messages (download: mbox.gz / follow: Atom feed)
-- links below jump to the message on this page --
2026-10-01 10:03 [PATCH v2] staging: rtl8723bs: use errno in rtw_register_tx_alive() Hungyu Lin
2026-10-01 11:17 ` Greg Kroah-Hartman
2026-10-01 11:56   ` Hungyu Lin
2026-10-01 12:12     ` Greg Kroah-Hartman

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

all inboxes | Powered by JetHome®