iommu/io-pgtable-arm: Use for_each_set_bit to simplify code
authorYueHaibing <yuehaibing@huawei.com>
Thu, 26 Apr 2018 04:49:29 +0000 (12:49 +0800)
committerJoerg Roedel <jroedel@suse.de>
Thu, 3 May 2018 13:31:07 +0000 (15:31 +0200)
We can use for_each_set_bit() to simplify code slightly in the
ARM io-pgtable self tests while unmapping.

Signed-off-by: YueHaibing <yuehaibing@huawei.com>
Signed-off-by: Joerg Roedel <jroedel@suse.de>
drivers/iommu/io-pgtable-arm-v7s.c
drivers/iommu/io-pgtable-arm.c

index 10e4a3d..50e3a9f 100644 (file)
@@ -898,8 +898,7 @@ static int __init arm_v7s_do_selftests(void)
 
        /* Full unmap */
        iova = 0;
-       i = find_first_bit(&cfg.pgsize_bitmap, BITS_PER_LONG);
-       while (i != BITS_PER_LONG) {
+       for_each_set_bit(i, &cfg.pgsize_bitmap, BITS_PER_LONG) {
                size = 1UL << i;
 
                if (ops->unmap(ops, iova, size) != size)
@@ -916,8 +915,6 @@ static int __init arm_v7s_do_selftests(void)
                        return __FAIL(ops);
 
                iova += SZ_16M;
-               i++;
-               i = find_next_bit(&cfg.pgsize_bitmap, BITS_PER_LONG, i);
        }
 
        free_io_pgtable_ops(ops);
index 39c2a05..4ffdd88 100644 (file)
@@ -1120,8 +1120,7 @@ static int __init arm_lpae_run_tests(struct io_pgtable_cfg *cfg)
 
                /* Full unmap */
                iova = 0;
-               j = find_first_bit(&cfg->pgsize_bitmap, BITS_PER_LONG);
-               while (j != BITS_PER_LONG) {
+               for_each_set_bit(j, &cfg->pgsize_bitmap, BITS_PER_LONG) {
                        size = 1UL << j;
 
                        if (ops->unmap(ops, iova, size) != size)
@@ -1138,8 +1137,6 @@ static int __init arm_lpae_run_tests(struct io_pgtable_cfg *cfg)
                                return __FAIL(ops, i);
 
                        iova += SZ_1G;
-                       j++;
-                       j = find_next_bit(&cfg->pgsize_bitmap, BITS_PER_LONG, j);
                }
 
                free_io_pgtable_ops(ops);