OSDN Git Service

iwlwifi: mvm: really disable TDLS queues
authorEmmanuel Grumbach <emmanuel.grumbach@intel.com>
Tue, 20 Jan 2015 15:07:10 +0000 (17:07 +0200)
committerEmmanuel Grumbach <emmanuel.grumbach@intel.com>
Thu, 22 Jan 2015 15:55:23 +0000 (17:55 +0200)
for_each_set_bit expect the size in number of bits and not
in bytes.

Fixes: a0f6bf2a5b01 ("iwlwifi: mvm: use private TFD queues for TDLS stations")
Reviewed-by: Arik Nemtsov <arik@wizery.com>
Reviewed-by: Johannes Berg <johannes.berg@intel.com>
Signed-off-by: Emmanuel Grumbach <emmanuel.grumbach@intel.com>
drivers/net/wireless/iwlwifi/mvm/sta.c

index 8e413d3..14a8484 100644 (file)
@@ -250,7 +250,7 @@ static void iwl_mvm_tdls_sta_deinit(struct iwl_mvm *mvm,
 
        /* disable the TDLS STA-specific queues */
        sta_msk = mvmsta->tfd_queue_msk;
-       for_each_set_bit(i, &sta_msk, sizeof(sta_msk))
+       for_each_set_bit(i, &sta_msk, sizeof(sta_msk) * BITS_PER_BYTE)
                iwl_mvm_disable_txq(mvm, i, 0);
 }
 
@@ -464,7 +464,7 @@ void iwl_mvm_sta_drained_wk(struct work_struct *wk)
                if (mvm->tfd_drained[sta_id]) {
                        unsigned long i, msk = mvm->tfd_drained[sta_id];
 
-                       for_each_set_bit(i, &msk, sizeof(msk))
+                       for_each_set_bit(i, &msk, sizeof(msk) * BITS_PER_BYTE)
                                iwl_mvm_disable_txq(mvm, i, 0);
 
                        mvm->tfd_drained[sta_id] = 0;