Skip to content

Commit

Permalink
iwlwifi: mvm: support BAR in reorder buffer
Browse files Browse the repository at this point in the history
BugLink: http://bugs.launchpad.net/bugs/1638748

commit 9a73a7d upstream.

On default queue we will not receive frame release notification,
but the BAR itself.
Upon receiving the BAR driver should look at the NSSN and adjust
window accordingly.

Fixes: b915c10 ("iwlwifi: mvm: add reorder buffer per queue")
Signed-off-by: Sara Sharon <sara.sharon@intel.com>
Signed-off-by: Luca Coelho <luciano.coelho@intel.com>
Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>

Signed-off-by: Tim Gardner <tim.gardner@canonical.com>
  • Loading branch information
sara-s authored and Luis Henriques committed Nov 8, 2016
1 parent 34f6b52 commit 1a533ea
Showing 1 changed file with 9 additions and 3 deletions.
12 changes: 9 additions & 3 deletions drivers/net/wireless/intel/iwlwifi/mvm/rxmq.c
Original file line number Diff line number Diff line change
Expand Up @@ -598,9 +598,10 @@ static bool iwl_mvm_reorder(struct iwl_mvm *mvm,

mvm_sta = iwl_mvm_sta_from_mac80211(sta);

/* not a data packet */
if (!ieee80211_is_data_qos(hdr->frame_control) ||
is_multicast_ether_addr(hdr->addr1))
/* not a data packet or a bar */
if (!ieee80211_is_back_req(hdr->frame_control) &&
(!ieee80211_is_data_qos(hdr->frame_control) ||
is_multicast_ether_addr(hdr->addr1)))
return false;

if (unlikely(!ieee80211_is_data_present(hdr->frame_control)))
Expand All @@ -624,6 +625,11 @@ static bool iwl_mvm_reorder(struct iwl_mvm *mvm,

spin_lock_bh(&buffer->lock);

if (ieee80211_is_back_req(hdr->frame_control)) {
iwl_mvm_release_frames(mvm, sta, napi, buffer, nssn);
goto drop;
}

/*
* If there was a significant jump in the nssn - adjust.
* If the SN is smaller than the NSSN it might need to first go into
Expand Down

0 comments on commit 1a533ea

Please sign in to comment.