| 123456789101112131415161718192021222324252627282930313233343536373839404142 |
- Silently ignore repetitive scheduling of recovery work and commands
- being passed to the bus when the HW is not available. This can happen
- many times during recovery and slow it down. It also spams the kernel
- logs.
- Signed-off-by: Arik Nemtsov <[email protected]>
- Signed-off-by: Eliad Peller <[email protected]>
- ---
- drivers/net/wireless/ti/wlcore/cmd.c | 4 ++--
- drivers/net/wireless/ti/wlcore/main.c | 5 +++--
- 2 files changed, 5 insertions(+), 4 deletions(-)
- --- a/drivers/net/wireless/ti/wlcore/cmd.c
- +++ b/drivers/net/wireless/ti/wlcore/cmd.c
- @@ -60,8 +60,8 @@ static int __wlcore_cmd_send(struct wl12
- u16 status;
- u16 poll_count = 0;
-
- - if (WARN_ON(wl->state == WLCORE_STATE_RESTARTING &&
- - id != CMD_STOP_FWLOGGER))
- + if (unlikely(wl->state == WLCORE_STATE_RESTARTING &&
- + id != CMD_STOP_FWLOGGER))
- return -EIO;
-
- cmd = buf;
- --- a/drivers/net/wireless/ti/wlcore/main.c
- +++ b/drivers/net/wireless/ti/wlcore/main.c
- @@ -782,10 +782,11 @@ out:
-
- void wl12xx_queue_recovery_work(struct wl1271 *wl)
- {
- - WARN_ON(!test_bit(WL1271_FLAG_INTENDED_FW_RECOVERY, &wl->flags));
- -
- /* Avoid a recursive recovery */
- if (wl->state == WLCORE_STATE_ON) {
- + WARN_ON(!test_bit(WL1271_FLAG_INTENDED_FW_RECOVERY,
- + &wl->flags));
- +
- wl->state = WLCORE_STATE_RESTARTING;
- set_bit(WL1271_FLAG_RECOVERY_IN_PROGRESS, &wl->flags);
- wl1271_ps_elp_wakeup(wl);
|