Groups | Search | Server Info | Keyboard shortcuts | Login | Register [http] [https] [nntp] [nntps]
Groups > linux.kernel > #1391991 > unrolled thread
| Started by | Wang YanQing <udknight@gmail.com> |
|---|---|
| First post | 2016-05-02 07:50 +0200 |
| Last post | 2016-05-02 17:50 +0200 |
| Articles | 2 — 2 participants |
Back to article view | Back to linux.kernel
[PATCH] rtlwifi:rtl_watchdog_wq_callback: fix calling rtl_lps_enter|rtl_lps_leave in opposite condition Wang YanQing <udknight@gmail.com> - 2016-05-02 07:50 +0200
Re: [PATCH] rtlwifi:rtl_watchdog_wq_callback: fix calling rtl_lps_enter|rtl_lps_leave in opposite condition Larry Finger <Larry.Finger@lwfinger.net> - 2016-05-02 17:50 +0200
| From | Wang YanQing <udknight@gmail.com> |
|---|---|
| Date | 2016-05-02 07:50 +0200 |
| Subject | [PATCH] rtlwifi:rtl_watchdog_wq_callback: fix calling rtl_lps_enter|rtl_lps_leave in opposite condition |
| Message-ID | <rueU2-6dn-7@gated-at.bofh.it> |
Commit a269913c52ad37952a4d9953bb6d748f7299c304
("rtlwifi: Rework rtl_lps_leave() and rtl_lps_enter() to use work queue")
make a mistake, change the meaning of num_tx|rx_inperiod comparison test.
Commit fd09ff958777cf583d7541f180991c0fc50bd2f7
("rtlwifi: Remove extra workqueue for enter/leave power state")
follow previous mistake, bring us to current code.
This patch fix it.
Signed-off-by: Wang YanQing <udknight@gmail.com>
---
I think this patch should be ported back to stable kernels, 3.10+.
In my machine, I will lost wifi connection after minutes if I enable
fwlps.
drivers/net/wireless/realtek/rtlwifi/base.c | 4 ++--
1 file changed, 2 insertions(+), 2 deletions(-)
diff --git a/drivers/net/wireless/realtek/rtlwifi/base.c b/drivers/net/wireless/realtek/rtlwifi/base.c
index c74eb13..264466f 100644
--- a/drivers/net/wireless/realtek/rtlwifi/base.c
+++ b/drivers/net/wireless/realtek/rtlwifi/base.c
@@ -1660,9 +1660,9 @@ void rtl_watchdog_wq_callback(void *data)
if (((rtlpriv->link_info.num_rx_inperiod +
rtlpriv->link_info.num_tx_inperiod) > 8) ||
(rtlpriv->link_info.num_rx_inperiod > 2))
- rtl_lps_enter(hw);
- else
rtl_lps_leave(hw);
+ else
+ rtl_lps_enter(hw);
}
rtlpriv->link_info.num_rx_inperiod = 0;
--
1.8.5.6.2.g3d8a54e.dirty
[toc] | [next] | [standalone]
| From | Larry Finger <Larry.Finger@lwfinger.net> |
|---|---|
| Date | 2016-05-02 17:50 +0200 |
| Message-ID | <ruogG-66V-19@gated-at.bofh.it> |
| In reply to | #1391991 |
On 05/02/2016 12:37 AM, Wang YanQing wrote:
> Commit a269913c52ad37952a4d9953bb6d748f7299c304
> ("rtlwifi: Rework rtl_lps_leave() and rtl_lps_enter() to use work queue")
> make a mistake, change the meaning of num_tx|rx_inperiod comparison test.
>
> Commit fd09ff958777cf583d7541f180991c0fc50bd2f7
> ("rtlwifi: Remove extra workqueue for enter/leave power state")
> follow previous mistake, bring us to current code.
>
> This patch fix it.
>
> Signed-off-by: Wang YanQing <udknight@gmail.com>
> ---
> I think this patch should be ported back to stable kernels, 3.10+.
> In my machine, I will lost wifi connection after minutes if I enable
> fwlps.
>
> drivers/net/wireless/realtek/rtlwifi/base.c | 4 ++--
> 1 file changed, 2 insertions(+), 2 deletions(-)
>
> diff --git a/drivers/net/wireless/realtek/rtlwifi/base.c b/drivers/net/wireless/realtek/rtlwifi/base.c
> index c74eb13..264466f 100644
> --- a/drivers/net/wireless/realtek/rtlwifi/base.c
> +++ b/drivers/net/wireless/realtek/rtlwifi/base.c
> @@ -1660,9 +1660,9 @@ void rtl_watchdog_wq_callback(void *data)
> if (((rtlpriv->link_info.num_rx_inperiod +
> rtlpriv->link_info.num_tx_inperiod) > 8) ||
> (rtlpriv->link_info.num_rx_inperiod > 2))
> - rtl_lps_enter(hw);
> - else
> rtl_lps_leave(hw);
> + else
> + rtl_lps_enter(hw);
> }
>
> rtlpriv->link_info.num_rx_inperiod = 0;
>
NACK
This patch is correct. There is a logic error in entering/exiting power-save
mode. Thus the code part is OK; however, the subject and commit message need to
be improved. If I had prepared this patch, my subject would have been "rtlwifi:
Fix logic error in enter/exit power-save mode". For the commit message, I would
have used the following:
In commit fd09ff958777 ("rtlwifi: Remove extra workqueue for enter/leave power
state"), the tests for enter/exit power-save mode were inverted. With this
change applied, the wifi connection becomes much more stable.
Fixes: fd09ff958777 ("rtlwifi: Remove extra workqueue for enter/leave power state")
Signed-off-by: Wang YanQing <udknight@gmail.com>
CC: Stable <stable@vger.kernel.org> [3.10+]
---
Thanks for finding this problem.
Larry
[toc] | [prev] | [standalone]
Back to top | Article view | linux.kernel
csiph-web