diff options
| author | Linus Torvalds <torvalds@woody.linux-foundation.org> | 2008-03-03 18:00:09 -0500 |
|---|---|---|
| committer | Linus Torvalds <torvalds@woody.linux-foundation.org> | 2008-03-03 18:00:09 -0500 |
| commit | 976dde010e513a9c7c3117a32b7b015f84b37430 (patch) | |
| tree | cd32701dbbb1be89f7bb34b701e632b348a954e7 /include/linux | |
| parent | 821c7de7194e77afee1a69d50830a329a6d9af9f (diff) | |
| parent | 62e5c4b4d6351707346695fd9e151b6cda85cbe1 (diff) | |
Merge branch 'slab-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/christoph/vm
* 'slab-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/christoph/vm:
slub: fix possible NULL pointer dereference
slub: Add kmalloc_large_node() to support kmalloc_node fallback
slub: look up object from the freelist once
slub: Fix up comments
slub: Rearrange #ifdef CONFIG_SLUB_DEBUG in calculate_sizes()
slub: Remove BUG_ON() from ksize and omit checks for !SLUB_DEBUG
slub: Use the objsize from the kmem_cache_cpu structure
slub: Remove useless checks in alloc_debug_processing
slub: Remove objsize check in kmem_cache_flags()
slub: rename slab_objects to show_slab_objects
Revert "unique end pointer" patch
slab: avoid double initialization & do initialization in 1 place
Diffstat (limited to 'include/linux')
| -rw-r--r-- | include/linux/mm_types.h | 5 | ||||
| -rw-r--r-- | include/linux/slub_def.h | 4 |
2 files changed, 3 insertions, 6 deletions
diff --git a/include/linux/mm_types.h b/include/linux/mm_types.h index bfee0bd1d435..34023c65d466 100644 --- a/include/linux/mm_types.h +++ b/include/linux/mm_types.h | |||
| @@ -64,10 +64,7 @@ struct page { | |||
| 64 | #if NR_CPUS >= CONFIG_SPLIT_PTLOCK_CPUS | 64 | #if NR_CPUS >= CONFIG_SPLIT_PTLOCK_CPUS |
| 65 | spinlock_t ptl; | 65 | spinlock_t ptl; |
| 66 | #endif | 66 | #endif |
| 67 | struct { | 67 | struct kmem_cache *slab; /* SLUB: Pointer to slab */ |
| 68 | struct kmem_cache *slab; /* SLUB: Pointer to slab */ | ||
| 69 | void *end; /* SLUB: end marker */ | ||
| 70 | }; | ||
| 71 | struct page *first_page; /* Compound tail pages */ | 68 | struct page *first_page; /* Compound tail pages */ |
| 72 | }; | 69 | }; |
| 73 | union { | 70 | union { |
diff --git a/include/linux/slub_def.h b/include/linux/slub_def.h index 57deecc79d52..b00c1c73eb0a 100644 --- a/include/linux/slub_def.h +++ b/include/linux/slub_def.h | |||
| @@ -61,7 +61,7 @@ struct kmem_cache { | |||
| 61 | int size; /* The size of an object including meta data */ | 61 | int size; /* The size of an object including meta data */ |
| 62 | int objsize; /* The size of an object without meta data */ | 62 | int objsize; /* The size of an object without meta data */ |
| 63 | int offset; /* Free pointer offset. */ | 63 | int offset; /* Free pointer offset. */ |
| 64 | int order; | 64 | int order; /* Current preferred allocation order */ |
| 65 | 65 | ||
| 66 | /* | 66 | /* |
| 67 | * Avoid an extra cache line for UP, SMP and for the node local to | 67 | * Avoid an extra cache line for UP, SMP and for the node local to |
| @@ -138,11 +138,11 @@ static __always_inline int kmalloc_index(size_t size) | |||
| 138 | if (size <= 512) return 9; | 138 | if (size <= 512) return 9; |
| 139 | if (size <= 1024) return 10; | 139 | if (size <= 1024) return 10; |
| 140 | if (size <= 2 * 1024) return 11; | 140 | if (size <= 2 * 1024) return 11; |
| 141 | if (size <= 4 * 1024) return 12; | ||
| 141 | /* | 142 | /* |
| 142 | * The following is only needed to support architectures with a larger page | 143 | * The following is only needed to support architectures with a larger page |
| 143 | * size than 4k. | 144 | * size than 4k. |
| 144 | */ | 145 | */ |
| 145 | if (size <= 4 * 1024) return 12; | ||
| 146 | if (size <= 8 * 1024) return 13; | 146 | if (size <= 8 * 1024) return 13; |
| 147 | if (size <= 16 * 1024) return 14; | 147 | if (size <= 16 * 1024) return 14; |
| 148 | if (size <= 32 * 1024) return 15; | 148 | if (size <= 32 * 1024) return 15; |
