aboutsummaryrefslogtreecommitdiffstats
path: root/include
diff options
context:
space:
mode:
authorChristoph Lameter <cl@linux.com>2011-05-20 10:42:48 -0400
committerPekka Enberg <penberg@kernel.org>2011-05-21 05:53:53 -0400
commit3e0c2ab67e48f77c2da0a5c826aac397792a214e (patch)
tree937d195659cb72bbd038907e36b23e5c0e7c262d /include
parent442b06bcea23a01934d3da7ec5898fa154a6cafb (diff)
slub: Deal with hyperthetical case of PAGE_SIZE > 2M
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>
Diffstat (limited to 'include')
-rw-r--r--include/linux/slub_def.h6
1 files changed, 4 insertions, 2 deletions
diff --git a/include/linux/slub_def.h b/include/linux/slub_def.h
index ca0c076b2374..c8668d161dd8 100644
--- a/include/linux/slub_def.h
+++ b/include/linux/slub_def.h
@@ -177,7 +177,8 @@ static __always_inline int kmalloc_index(size_t size)
177 if (size <= 4 * 1024) return 12; 177 if (size <= 4 * 1024) return 12;
178/* 178/*
179 * The following is only needed to support architectures with a larger page 179 * The following is only needed to support architectures with a larger page
180 * size than 4k. 180 * size than 4k. We need to support 2 * PAGE_SIZE here. So for a 64k page
181 * size we would have to go up to 128k.
181 */ 182 */
182 if (size <= 8 * 1024) return 13; 183 if (size <= 8 * 1024) return 13;
183 if (size <= 16 * 1024) return 14; 184 if (size <= 16 * 1024) return 14;
@@ -188,7 +189,8 @@ static __always_inline int kmalloc_index(size_t size)
188 if (size <= 512 * 1024) return 19; 189 if (size <= 512 * 1024) return 19;
189 if (size <= 1024 * 1024) return 20; 190 if (size <= 1024 * 1024) return 20;
190 if (size <= 2 * 1024 * 1024) return 21; 191 if (size <= 2 * 1024 * 1024) return 21;
191 return -1; 192 BUG();
193 return -1; /* Will never be reached */
192 194
193/* 195/*
194 * What we really wanted to do and cannot do because of compiler issues is: 196 * What we really wanted to do and cannot do because of compiler issues is: