diff options
Diffstat (limited to 'mm/slub.c')
-rw-r--r-- | mm/slub.c | 10 |
1 files changed, 2 insertions, 8 deletions
@@ -802,14 +802,8 @@ static void setup_object(struct kmem_cache *s, struct page *page, | |||
802 | init_tracking(s, object); | 802 | init_tracking(s, object); |
803 | } | 803 | } |
804 | 804 | ||
805 | if (unlikely(s->ctor)) { | 805 | if (unlikely(s->ctor)) |
806 | int mode = SLAB_CTOR_CONSTRUCTOR; | 806 | s->ctor(object, s, SLAB_CTOR_CONSTRUCTOR); |
807 | |||
808 | if (!(s->flags & __GFP_WAIT)) | ||
809 | mode |= SLAB_CTOR_ATOMIC; | ||
810 | |||
811 | s->ctor(object, s, mode); | ||
812 | } | ||
813 | } | 807 | } |
814 | 808 | ||
815 | static struct page *new_slab(struct kmem_cache *s, gfp_t flags, int node) | 809 | static struct page *new_slab(struct kmem_cache *s, gfp_t flags, int node) |