Browse Source

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>
Paul Mundt 18 years ago
parent
commit
84a01c2f8e
2 changed files with 9 additions and 1 deletions
  1. 1 1
      init/Kconfig
  2. 8 0
      mm/slob.c

+ 1 - 1
init/Kconfig

@@ -576,7 +576,7 @@ config SLUB
 	   and has enhanced diagnostics.
 	   and has enhanced diagnostics.
 
 
 config SLOB
 config SLOB
-	depends on EMBEDDED && !SPARSEMEM
+	depends on EMBEDDED
 	bool "SLOB (Simple Allocator)"
 	bool "SLOB (Simple Allocator)"
 	help
 	help
 	   SLOB replaces the SLAB allocator with a drastically simpler
 	   SLOB replaces the SLAB allocator with a drastically simpler

+ 8 - 0
mm/slob.c

@@ -634,6 +634,14 @@ int kmem_ptr_validate(struct kmem_cache *a, const void *b)
 	return 0;
 	return 0;
 }
 }
 
 
+static unsigned int slob_ready __read_mostly;
+
+int slab_is_available(void)
+{
+	return slob_ready;
+}
+
 void __init kmem_cache_init(void)
 void __init kmem_cache_init(void)
 {
 {
+	slob_ready = 1;
 }
 }