slob: sparsemem support
Currently slob is disabled if we're using sparsemem, due to an earlier
patch from Goto-san. Slob and static sparsemem work without any trouble as
it is, and the only hiccup is a missing slab_is_available() in the case of
sparsemem extreme. With this, we're rid of the last set of restrictions
for slob usage.
Signed-off-by: Paul Mundt <lethal@linux-sh.org>
Acked-by: Pekka Enberg <penberg@cs.helsinki.fi>
Acked-by: Matt Mackall <mpm@selenic.com>
Cc: Christoph Lameter <clameter@sgi.com>
Signed-off-by: Andrew Morton <akpm@linux-foundation.org>
Signed-off-by: Linus Torvalds <torvalds@linux-foundation.org>
diff --git a/init/Kconfig b/init/Kconfig
index d9d878a..63d52a0 100644
--- a/init/Kconfig
+++ b/init/Kconfig
@@ -576,7 +576,7 @@
and has enhanced diagnostics.
config SLOB
- depends on EMBEDDED && !SPARSEMEM
+ depends on EMBEDDED
bool "SLOB (Simple Allocator)"
help
SLOB replaces the SLAB allocator with a drastically simpler
diff --git a/mm/slob.c b/mm/slob.c
index b99b0ef..b489907 100644
--- a/mm/slob.c
+++ b/mm/slob.c
@@ -634,6 +634,14 @@
return 0;
}
+static unsigned int slob_ready __read_mostly;
+
+int slab_is_available(void)
+{
+ return slob_ready;
+}
+
void __init kmem_cache_init(void)
{
+ slob_ready = 1;
}