> > static __always_inline void * > > -slab_alloc_node(struct kmem_cache *cachep, gfp_t flags, int nodeid, > > +slab_alloc_node(struct kmem_cache *cachep, gfp_t flags, int nodeid, size_t orig_size, > > unsigned long caller) > > { > > The size of the object is available via a field in kmem_cache. And a > pointer to the current kmem_cache is already passed to the function. Why > is there a need to add an additional parameter? That's because we want to do our best detecting bugs on kmalloc-allocated objects. kmalloc is using size classes, so e.g. when allocating 272 bytes the object will be padded to 512. As a result, placing that object at the end of the page won't really help to detect out-of-bound accesses that are off by less than 270 bytes. We probably need to better clarify this in the patch description. -- Alexander Potapenko Software Engineer Google Germany GmbH Erika-Mann-Straße, 33 80636 München Geschäftsführer: Paul Manicle, Halimah DeLaine Prado Registergericht und -nummer: Hamburg, HRB 86891 Sitz der Gesellschaft: Hamburg