iwlwifi: mvm: add the quota remainder to a data binding
authorIlan Peer <ilan.peer@intel.com>
Sun, 19 Jan 2014 09:46:52 +0000 (11:46 +0200)
committerEmmanuel Grumbach <emmanuel.grumbach@intel.com>
Mon, 3 Feb 2014 20:23:37 +0000 (22:23 +0200)
Currently the quota remainder was added to the first binding, although
it is possible that this was not a data binding (only the P2P_DEVICE
interface is part of the binding).

Fix this by adding the remainder to the first binding that was actually
allocated quota.

Signed-off-by: Ilan Peer <ilan.peer@intel.com>
Reviewed-by: Johannes Berg <johannes.berg@intel.com>
Signed-off-by: Emmanuel Grumbach <emmanuel.grumbach@intel.com>
drivers/net/wireless/iwlwifi/mvm/quota.c

index 5691a85511460d106e033b12e203a9608183c821..f07ae483aa31cac19f6cdf3535599599a9f3ec4c 100644 (file)
@@ -276,8 +276,13 @@ int iwl_mvm_update_quotas(struct iwl_mvm *mvm, struct ieee80211_vif *newvif)
                idx++;
        }
 
-       /* Give the remainder of the session to the first binding */
-       le32_add_cpu(&cmd.quotas[0].quota, quota_rem);
+       /* Give the remainder of the session to the first data binding */
+       for (i = 0; i < MAX_BINDINGS; i++) {
+               if (le32_to_cpu(cmd.quotas[i].quota) != 0) {
+                       le32_add_cpu(&cmd.quotas[i].quota, quota_rem);
+                       break;
+               }
+       }
 
        iwl_mvm_adjust_quota_for_noa(mvm, &cmd);