> -----Original Message-----
> From: Greg KH <gre...@linuxfoundation.org>
> 
> On Wed, Feb 10, 2021 at 11:54:08AM -0600, Mike Ximing Chen wrote:
> > +static inline int dlb_bitmap_clear_range(struct dlb_bitmap *bitmap,
> > +                                    unsigned int bit,
> > +                                    unsigned int len)
> > +{
> > +   if (!bitmap || !bitmap->map)
> > +           return -EINVAL;
> > +
> > +   if (bitmap->len <= bit)
> > +           return -EINVAL;
> > +
> > +   bitmap_clear(bitmap->map, bit, len);
> > +
> > +   return 0;
> > +}
> 
> Why isn't logic like this just added to the lib/bitmap.c file?
> 
> > +static inline int dlb_bitmap_find_set_bit_range(struct dlb_bitmap *bitmap,
> > +                                           unsigned int len)
> > +{
> > +   struct dlb_bitmap *complement_mask = NULL;
> > +   int ret;
> > +
> > +   if (!bitmap || !bitmap->map || len == 0)
> > +           return -EINVAL;
> > +
> > +   if (bitmap->len < len)
> > +           return -ENOENT;
> > +
> > +   ret = dlb_bitmap_alloc(&complement_mask, bitmap->len);
> > +   if (ret)
> > +           return ret;
> > +
> > +   bitmap_zero(complement_mask->map, complement_mask->len);
> > +
> > +   bitmap_complement(complement_mask->map, bitmap->map, bitmap->len);
> > +
> > +   ret = bitmap_find_next_zero_area(complement_mask->map,
> > +                                    complement_mask->len,
> > +                                    0,
> > +                                    len,
> > +                                    0);
> > +
> > +   dlb_bitmap_free(complement_mask);
> > +
> > +   /* No set bit range of length len? */
> > +   return (ret >= (int)bitmap->len) ? -ENOENT : ret;
> > +}
> 
> Same here, why not put this in the core kernel instead of a tiny random
> driver like this?
> 

OK, we will put them in include/Linux/bitmap.h.

Thanks
Mike

Reply via email to