iwlwifi: pcie: apply no-reclaim logic only to group 0
authorJohannes Berg <johannes.berg@intel.com>
Mon, 6 Mar 2017 14:49:00 +0000 (15:49 +0100)
committerLuca Coelho <luciano.coelho@intel.com>
Tue, 25 Apr 2017 20:07:31 +0000 (23:07 +0300)
When applying no-reclaim logic to commands other than the group
zero for legacy commands, commands such as 0x1c (TX_CMD in group
0) can't be used in any other group. Fix that by applying this
logic only for group 0 - it's not and should never be needed for
any other groups.

Reported-by: Sharon Dvir <sharon.dvir@intel.com>
Reported-by: Shaul Triebitz <shaul.triebitz@intel.com>
Signed-off-by: Johannes Berg <johannes.berg@intel.com>
Signed-off-by: Luca Coelho <luciano.coelho@intel.com>
drivers/net/wireless/intel/iwlwifi/pcie/rx.c

index f98f2d2..1da2de2 100644 (file)
@@ -1147,7 +1147,7 @@ static void iwl_pcie_rx_handle_rb(struct iwl_trans *trans,
                 * Ucode should set SEQ_RX_FRAME bit if ucode-originated,
                 *   but apparently a few don't get set; catch them here. */
                reclaim = !(pkt->hdr.sequence & SEQ_RX_FRAME);
-               if (reclaim) {
+               if (reclaim && !pkt->hdr.group_id) {
                        int i;
 
                        for (i = 0; i < trans_pcie->n_no_reclaim_cmds; i++) {