Donate to e Foundation | Murena handsets with /e/OS | Own a part of Murena! Learn more

Commit d5eee405 authored by Linus Torvalds's avatar Linus Torvalds
Browse files
* '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
Loading
Loading
Loading
Loading
+9 −3
Original line number Original line Diff line number Diff line
@@ -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))