Commit d5eee405 authored by Linus Torvalds's avatar Linus Torvalds

Merge branch 'slab-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/christoph/vm

* 'slab-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/christoph/vm:
  slub page alloc fallback: Enable interrupts for GFP_WAIT.
parents f920bb6f caeab084
...@@ -1536,9 +1536,15 @@ static void *__slab_alloc(struct kmem_cache *s, ...@@ -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))
......
Markdown is supported
0%
or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment