On Tue, 27 Feb 2018 12:50:08 +0530
"Aneesh Kumar K.V" <aneesh.ku...@linux.vnet.ibm.com> wrote:

> 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?

Because we only have the available bitmap now. If we see large ranges
here we could use some bitmap operation like find_next_zero_bit perhaps.

Thanks,
Nick

Reply via email to