Loading mm/slub.c +9 −3 Original line number Original line Diff line number Diff line Loading @@ -1536,9 +1536,15 @@ static void *__slab_alloc(struct kmem_cache *s, * That is only possible if certain conditions are met that are being * That is only possible if certain conditions are met that are being * checked when a slab is created. * checked when a slab is created. */ */ if (!(gfpflags & __GFP_NORETRY) && (s->flags & __PAGE_ALLOC_FALLBACK)) if (!(gfpflags & __GFP_NORETRY) && return kmalloc_large(s->objsize, gfpflags); (s->flags & __PAGE_ALLOC_FALLBACK)) { if (gfpflags & __GFP_WAIT) local_irq_enable(); object = kmalloc_large(s->objsize, gfpflags); if (gfpflags & __GFP_WAIT) local_irq_disable(); return object; } return NULL; return NULL; debug: debug: if (!alloc_debug_processing(s, c->page, object, addr)) if (!alloc_debug_processing(s, c->page, object, addr)) Loading Loading
mm/slub.c +9 −3 Original line number Original line Diff line number Diff line Loading @@ -1536,9 +1536,15 @@ static void *__slab_alloc(struct kmem_cache *s, * That is only possible if certain conditions are met that are being * That is only possible if certain conditions are met that are being * checked when a slab is created. * checked when a slab is created. */ */ if (!(gfpflags & __GFP_NORETRY) && (s->flags & __PAGE_ALLOC_FALLBACK)) if (!(gfpflags & __GFP_NORETRY) && return kmalloc_large(s->objsize, gfpflags); (s->flags & __PAGE_ALLOC_FALLBACK)) { if (gfpflags & __GFP_WAIT) local_irq_enable(); object = kmalloc_large(s->objsize, gfpflags); if (gfpflags & __GFP_WAIT) local_irq_disable(); return object; } return NULL; return NULL; debug: debug: if (!alloc_debug_processing(s, c->page, object, addr)) if (!alloc_debug_processing(s, c->page, object, addr)) Loading