iwlwifi: mvm: handle FRAME_RELEASE in MQ code
authorJohannes Berg <johannes.berg@intel.com>
Wed, 27 Apr 2016 11:33:26 +0000 (13:33 +0200)
committerLuca Coelho <luciano.coelho@intel.com>
Fri, 1 Jul 2016 15:09:46 +0000 (18:09 +0300)
For some reason, the FRAME_RELEASE message handling for the
default queue ended up being in the only/default queue for
non-RSS devices; fix that and handle FRAME_RELEASE properly
on the default queue for RSS devices.

Fixes: 585a6fccf5b8 ("iwlwifi: mvm: infrastructure for frame-release message")
Signed-off-by: Johannes Berg <johannes.berg@intel.com>
Signed-off-by: Luca Coelho <luciano.coelho@intel.com>
drivers/net/wireless/intel/iwlwifi/mvm/ops.c

index ddc400436782371183b2da8cc4778b4d05a448db..632b1dc552a01675b24c030482d7b2c0b0c7d9a0 100644 (file)
@@ -967,8 +967,6 @@ static void iwl_mvm_rx(struct iwl_op_mode *op_mode,
 
        if (likely(pkt->hdr.cmd == REPLY_RX_MPDU_CMD))
                iwl_mvm_rx_rx_mpdu(mvm, napi, rxb);
-       else if (pkt->hdr.cmd == FRAME_RELEASE)
-               iwl_mvm_rx_frame_release(mvm, napi, rxb, 0);
        else if (pkt->hdr.cmd == REPLY_RX_PHY_CMD)
                iwl_mvm_rx_rx_phy_cmd(mvm, rxb);
        else
@@ -987,6 +985,8 @@ static void iwl_mvm_rx_mq(struct iwl_op_mode *op_mode,
        else if (unlikely(pkt->hdr.group_id == DATA_PATH_GROUP &&
                          pkt->hdr.cmd == RX_QUEUES_NOTIFICATION))
                iwl_mvm_rx_queue_notif(mvm, rxb, 0);
+       else if (pkt->hdr.cmd == FRAME_RELEASE)
+               iwl_mvm_rx_frame_release(mvm, napi, rxb, 0);
        else
                iwl_mvm_rx_common(mvm, rxb, pkt);
 }