On Fri, Jul 15, 2016 at 6:50 PM, Andrey Ryabinin <aryabinin@xxxxxxxxxxxxx> wrote: > - Remove CONFIG_SLAB ifdefs. The code works just fine with both allocators. > - Reset metada offsets if metadata doesn't fit. Otherwise kasan_metadata_size() > will give us the wrong results. > > Signed-off-by: Andrey Ryabinin <aryabinin@xxxxxxxxxxxxx> Acked-by: Alexander Potapenko <glider@xxxxxxxxxx> > --- > mm/kasan/kasan.c | 17 +++++------------ > 1 file changed, 5 insertions(+), 12 deletions(-) > > diff --git a/mm/kasan/kasan.c b/mm/kasan/kasan.c > index d92a7a2..b6f99e8 100644 > --- a/mm/kasan/kasan.c > +++ b/mm/kasan/kasan.c > @@ -372,9 +372,7 @@ void kasan_cache_create(struct kmem_cache *cache, size_t *size, > unsigned long *flags) > { > int redzone_adjust; > -#ifdef CONFIG_SLAB > int orig_size = *size; > -#endif > > /* Add alloc meta. */ > cache->kasan_info.alloc_meta_offset = *size; > @@ -392,25 +390,20 @@ void kasan_cache_create(struct kmem_cache *cache, size_t *size, > if (redzone_adjust > 0) > *size += redzone_adjust; > > -#ifdef CONFIG_SLAB > - *size = min(KMALLOC_MAX_SIZE, > - max(*size, > - cache->object_size + > - optimal_redzone(cache->object_size))); > + *size = min(KMALLOC_MAX_SIZE, max(*size, cache->object_size + > + optimal_redzone(cache->object_size))); > + > /* > * If the metadata doesn't fit, don't enable KASAN at all. > */ > if (*size <= cache->kasan_info.alloc_meta_offset || > *size <= cache->kasan_info.free_meta_offset) { > + cache->kasan_info.alloc_meta_offset = 0; > + cache->kasan_info.free_meta_offset = 0; > *size = orig_size; > return; > } > -#else > - *size = max(*size, > - cache->object_size + > - optimal_redzone(cache->object_size)); > > -#endif > *flags |= SLAB_KASAN; > } > > -- > 2.7.3 > -- Alexander Potapenko Software Engineer Google Germany GmbH Erika-Mann-Straße, 33 80636 München Geschäftsführer: Matthew Scott Sucherman, Paul Terence Manicle Registergericht und -nummer: Hamburg, HRB 86891 Sitz der Gesellschaft: Hamburg -- 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