OSDN Git Service

mm, kasan: SLAB support
[uclinux-h8/linux.git] / include / linux / slab_def.h
index e878ba3..9edbbf3 100644 (file)
@@ -76,8 +76,22 @@ struct kmem_cache {
 #ifdef CONFIG_MEMCG
        struct memcg_cache_params memcg_params;
 #endif
+#ifdef CONFIG_KASAN
+       struct kasan_cache kasan_info;
+#endif
 
        struct kmem_cache_node *node[MAX_NUMNODES];
 };
 
+static inline void *nearest_obj(struct kmem_cache *cache, struct page *page,
+                               void *x) {
+       void *object = x - (x - page->s_mem) % cache->size;
+       void *last_object = page->s_mem + (cache->num - 1) * cache->size;
+
+       if (unlikely(object > last_object))
+               return last_object;
+       else
+               return object;
+}
+
 #endif /* _LINUX_SLAB_DEF_H */