mm: Enable SLUB for RT

Avoid the memory allocation in IRQ section

Signed-off-by: Thomas Gleixner <tglx@linutronix.de>
[bigeasy: factor out everything except the kcalloc() workaorund ]
Signed-off-by: Sebastian Andrzej Siewior <bigeasy@linutronix.de>
This commit is contained in:
Thomas Gleixner 2012-10-25 10:32:35 +01:00 committed by Alibek Omarov
parent 8dd0922414
commit 3d0991b2f3

View File

@ -3807,6 +3807,11 @@ static void list_slab_objects(struct kmem_cache *s, struct page *page,
const char *text)
{
#ifdef CONFIG_SLUB_DEBUG
#ifdef CONFIG_PREEMPT_RT
/* XXX move out of irq-off section */
slab_err(s, page, text, s->name);
#else
void *addr = page_address(page);
void *p;
unsigned long *map = bitmap_zalloc(page->objects, GFP_ATOMIC);
@ -3826,8 +3831,10 @@ static void list_slab_objects(struct kmem_cache *s, struct page *page,
slab_unlock(page);
bitmap_free(map);
#endif
#endif
}
/*
* Attempt to free all partial slabs on a node.
* This is called from __kmem_cache_shutdown(). We must take list_lock