/* We want to avoid an expensive divide : (offset / cache->buffer_size) Using the fact that buffer_size is a constant for a particular cache, we can replace (offset / cache->buffer_size) by reciprocal_divide(offset, cache->reciprocal_buffer_size)  */
static unsigned int obj_to_index(const struct kmem_cache *cache, const struct slab *slab, void *obj)
/* We want to avoid an expensive divide : (offset / cache->buffer_size) Using the fact that buffer_size is a constant for a particular cache, we can replace (offset / cache->buffer_size) by reciprocal_divide(offset, cache->reciprocal_buffer_size)  */
static unsigned int obj_to_index(const struct kmem_cache *cache, const struct slab *slab, void *obj)
{
	u32 offset = (obj - slab->s_mem);
	return reciprocal_divide(offset, cache->reciprocal_buffer_size);
}