]> git.karo-electronics.de Git - karo-tx-linux.git/commitdiff
slub: Deal with hyperthetical case of PAGE_SIZE > 2M
authorChristoph Lameter <cl@linux.com>
Fri, 20 May 2011 14:42:48 +0000 (09:42 -0500)
committerPekka Enberg <penberg@kernel.org>
Sat, 21 May 2011 09:53:53 +0000 (12:53 +0300)
kmalloc_index() currently returns -1 if the PAGE_SIZE is larger than 2M
which seems to cause some concern since the callers do not check for -1.

Insert a BUG() and add a comment to the -1 explaining that the code
cannot be reached.

Signed-off-by: Christoph Lameter <cl@linux.com>
Signed-off-by: Pekka Enberg <penberg@kernel.org>
include/linux/slub_def.h

index ca0c076b2374db1112196fdab837e6f6a7fb2701..c8668d161dd89251de828b30f2ccda69eda6f979 100644 (file)
@@ -177,7 +177,8 @@ static __always_inline int kmalloc_index(size_t size)
        if (size <=   4 * 1024) return 12;
 /*
  * The following is only needed to support architectures with a larger page
- * size than 4k.
+ * size than 4k. We need to support 2 * PAGE_SIZE here. So for a 64k page
+ * size we would have to go up to 128k.
  */
        if (size <=   8 * 1024) return 13;
        if (size <=  16 * 1024) return 14;
@@ -188,7 +189,8 @@ static __always_inline int kmalloc_index(size_t size)
        if (size <= 512 * 1024) return 19;
        if (size <= 1024 * 1024) return 20;
        if (size <=  2 * 1024 * 1024) return 21;
-       return -1;
+       BUG();
+       return -1; /* Will never be reached */
 
 /*
  * What we really wanted to do and cannot do because of compiler issues is: