|
@@ -809,25 +809,20 @@ static struct {
|
|
};
|
|
};
|
|
|
|
|
|
/*
|
|
/*
|
|
- * Create the kmalloc array. Some of the regular kmalloc arrays
|
|
|
|
- * may already have been created because they were needed to
|
|
|
|
- * enable allocations for slab creation.
|
|
|
|
|
|
+ * Patch up the size_index table if we have strange large alignment
|
|
|
|
+ * requirements for the kmalloc array. This is only the case for
|
|
|
|
+ * MIPS it seems. The standard arches will not generate any code here.
|
|
|
|
+ *
|
|
|
|
+ * Largest permitted alignment is 256 bytes due to the way we
|
|
|
|
+ * handle the index determination for the smaller caches.
|
|
|
|
+ *
|
|
|
|
+ * Make sure that nothing crazy happens if someone starts tinkering
|
|
|
|
+ * around with ARCH_KMALLOC_MINALIGN
|
|
*/
|
|
*/
|
|
-void __init create_kmalloc_caches(unsigned long flags)
|
|
|
|
|
|
+void __init setup_kmalloc_cache_index_table(void)
|
|
{
|
|
{
|
|
int i;
|
|
int i;
|
|
|
|
|
|
- /*
|
|
|
|
- * Patch up the size_index table if we have strange large alignment
|
|
|
|
- * requirements for the kmalloc array. This is only the case for
|
|
|
|
- * MIPS it seems. The standard arches will not generate any code here.
|
|
|
|
- *
|
|
|
|
- * Largest permitted alignment is 256 bytes due to the way we
|
|
|
|
- * handle the index determination for the smaller caches.
|
|
|
|
- *
|
|
|
|
- * Make sure that nothing crazy happens if someone starts tinkering
|
|
|
|
- * around with ARCH_KMALLOC_MINALIGN
|
|
|
|
- */
|
|
|
|
BUILD_BUG_ON(KMALLOC_MIN_SIZE > 256 ||
|
|
BUILD_BUG_ON(KMALLOC_MIN_SIZE > 256 ||
|
|
(KMALLOC_MIN_SIZE & (KMALLOC_MIN_SIZE - 1)));
|
|
(KMALLOC_MIN_SIZE & (KMALLOC_MIN_SIZE - 1)));
|
|
|
|
|
|
@@ -858,6 +853,17 @@ void __init create_kmalloc_caches(unsigned long flags)
|
|
for (i = 128 + 8; i <= 192; i += 8)
|
|
for (i = 128 + 8; i <= 192; i += 8)
|
|
size_index[size_index_elem(i)] = 8;
|
|
size_index[size_index_elem(i)] = 8;
|
|
}
|
|
}
|
|
|
|
+}
|
|
|
|
+
|
|
|
|
+/*
|
|
|
|
+ * Create the kmalloc array. Some of the regular kmalloc arrays
|
|
|
|
+ * may already have been created because they were needed to
|
|
|
|
+ * enable allocations for slab creation.
|
|
|
|
+ */
|
|
|
|
+void __init create_kmalloc_caches(unsigned long flags)
|
|
|
|
+{
|
|
|
|
+ int i;
|
|
|
|
+
|
|
for (i = KMALLOC_LOOP_LOW; i <= KMALLOC_SHIFT_HIGH; i++) {
|
|
for (i = KMALLOC_LOOP_LOW; i <= KMALLOC_SHIFT_HIGH; i++) {
|
|
if (!kmalloc_caches[i]) {
|
|
if (!kmalloc_caches[i]) {
|
|
kmalloc_caches[i] = create_kmalloc_cache(
|
|
kmalloc_caches[i] = create_kmalloc_cache(
|