On Mon, Nov 09, 2015 at 04:04:51PM -0600, Christoph Lameter wrote: > On Mon, 9 Nov 2015, Vladimir Davydov wrote: > > > I think it must be &object > > > > BTW why is object defined as void **? I suspect we can safely drop one > > star. > > See get_freepointer() > > static inline void *get_freepointer(struct kmem_cache *s, void *object) > { > return *(void **)(object + s->offset); > } In this function object has type (void *) > > The object at some point has a freepointer and ** allows the use of the > s->offset field to get to it. But it doesn't mean we have to define it as (void **) in slab_alloc_node. Actually, the fact that object is of type (void **) is never used in slab_alloc_node, and all functions called by it accept (void *) for object, not (void **). Dropping one star there doesn't break anything and looks less confusing IMO. Thanks, Vladimir -- To unsubscribe, send a message with 'unsubscribe linux-mm' in the body to majordomo@xxxxxxxxx. For more info on Linux MM, see: http://www.linux-mm.org/ . Don't email: <a href=mailto:"dont@xxxxxxxxx"> email@xxxxxxxxx </a>