diff options
Diffstat (limited to 'drivers/net/wireless/wl12xx/cmd.c')
-rw-r--r-- | drivers/net/wireless/wl12xx/cmd.c | 8 |
1 files changed, 8 insertions, 0 deletions
diff --git a/drivers/net/wireless/wl12xx/cmd.c b/drivers/net/wireless/wl12xx/cmd.c index 1ef212f6440f..3414fc11e9ba 100644 --- a/drivers/net/wireless/wl12xx/cmd.c +++ b/drivers/net/wireless/wl12xx/cmd.c | |||
@@ -1818,6 +1818,14 @@ int wl12xx_croc(struct wl1271 *wl, u8 role_id) | |||
1818 | goto out; | 1818 | goto out; |
1819 | 1819 | ||
1820 | __clear_bit(role_id, wl->roc_map); | 1820 | __clear_bit(role_id, wl->roc_map); |
1821 | |||
1822 | /* | ||
1823 | * Rearm the tx watchdog when removing the last ROC. This prevents | ||
1824 | * recoveries due to just finished ROCs - when Tx hasn't yet had | ||
1825 | * a chance to get out. | ||
1826 | */ | ||
1827 | if (find_first_bit(wl->roc_map, WL12XX_MAX_ROLES) >= WL12XX_MAX_ROLES) | ||
1828 | wl12xx_rearm_tx_watchdog_locked(wl); | ||
1821 | out: | 1829 | out: |
1822 | return ret; | 1830 | return ret; |
1823 | } | 1831 | } |