From: Ben Greear <gree...@candelatech.com>

The (1 << x) - 1 trick won't work when you
are trying to fill up all 64 bits, so add special
case for that.

And, move the limits to the per-nic structure instead
of per-driver to allow better dynamic use of the limits.

Signed-off-by: Ben Greear <gree...@candelatech.com>
---
 drivers/net/wireless/ath/ath10k/core.c | 5 ++++-
 1 file changed, 4 insertions(+), 1 deletion(-)

diff --git a/drivers/net/wireless/ath/ath10k/core.c 
b/drivers/net/wireless/ath/ath10k/core.c
index 3f1786c..fa71d57 100644
--- a/drivers/net/wireless/ath/ath10k/core.c
+++ b/drivers/net/wireless/ath/ath10k/core.c
@@ -1819,7 +1819,10 @@ int ath10k_core_start(struct ath10k *ar, enum 
ath10k_firmware_mode mode,
        if (status)
                goto err_hif_stop;
 
-       ar->free_vdev_map = (1LL << ar->max_num_vdevs) - 1;
+       if (ar->max_num_vdevs >= 64)
+               ar->free_vdev_map = 0xFFFFFFFFFFFFFFFFLL;
+       else
+               ar->free_vdev_map = (1LL << ar->max_num_vdevs) - 1;
 
        INIT_LIST_HEAD(&ar->arvifs);
 
-- 
2.4.3


_______________________________________________
ath10k mailing list
ath10k@lists.infradead.org
http://lists.infradead.org/mailman/listinfo/ath10k

Reply via email to