qed: replace bitmap_weight with bitmap_empty in qed_roce_stop()
authorYury Norov <yury.norov@gmail.com>
Wed, 9 Feb 2022 23:54:34 +0000 (15:54 -0800)
committerYury Norov <yury.norov@gmail.com>
Mon, 2 May 2022 13:30:40 +0000 (06:30 -0700)
qed_roce_stop() calls bitmap_weight() to check if any bit of a given
bitmap is set. We can do it more efficiently with bitmap_empty() because
bitmap_empty() stops traversing the bitmap as soon as it finds first set
bit, while bitmap_weight() counts all bits unconditionally.

Signed-off-by: Yury Norov <yury.norov@gmail.com>
Acked-by: Prabhakar Kushwaha <pkushwaha@marvell.com>
drivers/net/ethernet/qlogic/qed/qed_roce.c

index 071b4aeaddf286f7b8943af9ca70b4745c843934..134ecfca96a3e83c0dcb7edc071b613ad46d6ffb 100644 (file)
@@ -76,7 +76,7 @@ void qed_roce_stop(struct qed_hwfn *p_hwfn)
         * We delay for a short while if an async destroy QP is still expected.
         * Beyond the added delay we clear the bitmap anyway.
         */
-       while (bitmap_weight(rcid_map->bitmap, rcid_map->max_count)) {
+       while (!bitmap_empty(rcid_map->bitmap, rcid_map->max_count)) {
                /* If the HW device is during recovery, all resources are
                 * immediately reset without receiving a per-cid indication
                 * from HW. In this case we don't expect the cid bitmap to be