]> git.ipfire.org Git - thirdparty/kernel/linux.git/commitdiff
wifi: mwifiex: decrease timeout waiting for host sleep from 10s to 5s
authorPin-yen Lin <treapking@chromium.org>
Wed, 27 Nov 2024 10:55:43 +0000 (18:55 +0800)
committerKalle Valo <kvalo@kernel.org>
Mon, 9 Dec 2024 15:59:45 +0000 (17:59 +0200)
In commit 52250cbee7f6 ("mwifiex: use timeout variant for
wait_event_interruptible") it was noted that sometimes we seemed
to miss the signal that our host sleep settings took effect. A
10 second timeout was added to the code to make sure we didn't
hang forever waiting. It appears that this problem still exists
and we hit the timeout sometimes for Chromebooks in the field.

Recently on ChromeOS we've started setting the DPM watchdog
to trip if full system suspend takes over 10 seconds. Given
the timeout in the original patch, obviously we're hitting
the DPM watchdog before mwifiex gets a chance to timeout.

While we could increase the DPM watchdog in ChromeOS to avoid
this problem, it's probably better to simply decrease the
timeout. Any time we're waiting several seconds for the
firmware to respond it's likely that the firmware won't ever
respond. With that in mind, decrease the timeout in mwifiex
from 10 seconds to 5 seconds.

Suggested-by: Doug Anderson <dianders@chromium.org>
Signed-off-by: Pin-yen Lin <treapking@chromium.org>
Reviewed-by: Douglas Anderson <dianders@chromium.org>
Acked-by: Brian Norris <briannorris@chromium.org>
Signed-off-by: Kalle Valo <kvalo@kernel.org>
Link: https://patch.msgid.link/20241127105709.4014302-1-treapking@chromium.org
drivers/net/wireless/marvell/mwifiex/sta_ioctl.c

index e06a0622973e728f9236a381150ae31fca9d48a0..f79589cafe5725f0300573337ba8bbfb471a6d31 100644 (file)
@@ -545,7 +545,7 @@ int mwifiex_enable_hs(struct mwifiex_adapter *adapter)
 
        if (wait_event_interruptible_timeout(adapter->hs_activate_wait_q,
                                             adapter->hs_activate_wait_q_woken,
-                                            (10 * HZ)) <= 0) {
+                                            (5 * HZ)) <= 0) {
                mwifiex_dbg(adapter, ERROR,
                            "hs_activate_wait_q terminated\n");
                return false;