Christophe Leroy <christophe.le...@c-s.fr> writes: + if ((start + len) > SLICE_LOW_TOP) { > + unsigned long start_index = GET_HIGH_SLICE_INDEX(start); > + unsigned long align_end = ALIGN(end, (1UL << SLICE_HIGH_SHIFT)); > + unsigned long count = GET_HIGH_SLICE_INDEX(align_end) - > start_index; > + unsigned long i; > > - slice_bitmap_and(result, mask->high_slices, available->high_slices, > - slice_count); > + for (i = start_index; i < start_index + count; i++) { > + if (!test_bit(i, available->high_slices)) > + return false; > + } > + }
why not bitmap_equal here instead of test_bit in loop? > > - return (mask->low_slices & available->low_slices) == mask->low_slices && > - slice_bitmap_equal(result, mask->high_slices, slice_count); > + return true; > } -aneesh