]> git.karo-electronics.de Git - karo-tx-linux.git/commitdiff
iwlwifi: mvm: fix reorder timer re-arming
authorSara Sharon <sara.sharon@intel.com>
Tue, 3 Jan 2017 19:03:35 +0000 (21:03 +0200)
committerLuca Coelho <luciano.coelho@intel.com>
Wed, 8 Feb 2017 10:55:32 +0000 (12:55 +0200)
When NSSN is behind the reorder buffer due to timeout
the reorder timer isn't getting re-armed until NSSN
catches up. Fix it.

Fixes: 0690405fef29 ("iwlwifi: mvm: add reorder timeout per frame")
Signed-off-by: Sara Sharon <sara.sharon@intel.com>
Signed-off-by: Luca Coelho <luciano.coelho@intel.com>
drivers/net/wireless/intel/iwlwifi/mvm/rxmq.c

index c154ab42c80d8d74662541d8ad84634b7c6ef23e..d79e9c2a2654aed22fd8c359cb27a923cdcc5e50 100644 (file)
@@ -418,7 +418,7 @@ static void iwl_mvm_release_frames(struct iwl_mvm *mvm,
 
        /* ignore nssn smaller than head sn - this can happen due to timeout */
        if (iwl_mvm_is_sn_less(nssn, ssn, reorder_buf->buf_size))
-               return;
+               goto set_timer;
 
        while (iwl_mvm_is_sn_less(ssn, nssn, reorder_buf->buf_size)) {
                int index = ssn % reorder_buf->buf_size;
@@ -441,6 +441,7 @@ static void iwl_mvm_release_frames(struct iwl_mvm *mvm,
        }
        reorder_buf->head_sn = nssn;
 
+set_timer:
        if (reorder_buf->num_stored && !reorder_buf->removed) {
                u16 index = reorder_buf->head_sn % reorder_buf->buf_size;