The macros iterate thru all set/clear bits in a bitmap. They search a first bit using find_first_bit(), and the rest bits using find_next_bit(). Since find_next_bit() is called shortly after find_first_bit(), we can save few lines of I-cache by not using find_first_bit().
Unified · Split
| @@ -280,7 +280,7 @@ unsigned long find_next_bit_le(const void *addr, unsigned · 279 unmodified lines | ||
| 280 | 280 | #endif |
| 281 | 281 | |
| 282 | 282 | #define for_each_set_bit(bit, addr, size) \ |
| 283 | − for ((bit) = find_first_bit((addr), (size)); \ | |
| 283 | + for ((bit) = find_next_bit((addr), (size), 0); \ | |
| 284 | 284 | (bit) < (size); \ |
| 285 | 285 | (bit) = find_next_bit((addr), (size), (bit) + 1)) |
| 286 | 286 | |
| @@ -291,7 +291,7 @@ unsigned long find_next_bit_le(const void *addr, unsigned · 4 unmodified lines | ||
| 291 | 291 | (bit) = find_next_bit((addr), (size), (bit) + 1)) |
| 292 | 292 | |
| 293 | 293 | #define for_each_clear_bit(bit, addr, size) \ |
| 294 | − for ((bit) = find_first_zero_bit((addr), (size)); \ | |
| 294 | + for ((bit) = find_next_zero_bit((addr), (size), 0); \ | |
| 295 | 295 | (bit) < (size); \ |
| 296 | 296 | (bit) = find_next_zero_bit((addr), (size), (bit) + 1)) |
| 297 | 297 | |