diff options
author | Linus Torvalds <torvalds@woody.linux-foundation.org> | 2007-05-05 17:55:20 -0400 |
---|---|---|
committer | Linus Torvalds <torvalds@woody.linux-foundation.org> | 2007-05-05 17:55:20 -0400 |
commit | ea62ccd00fd0b6720b033adfc9984f31130ce195 (patch) | |
tree | 9837b797b2466fffcb0af96c388b06eae9c3df18 /mm/slab.c | |
parent | 886a0768affe9a32f18c45f8e1393bca9ece5392 (diff) | |
parent | 35060b6a9a4e1c89bc6fbea61090e302dbc61847 (diff) |
Merge branch 'for-linus' of git://one.firstfloor.org/home/andi/git/linux-2.6
* 'for-linus' of git://one.firstfloor.org/home/andi/git/linux-2.6: (231 commits)
[PATCH] i386: Don't delete cpu_devs data to identify different x86 types in late_initcall
[PATCH] i386: type may be unused
[PATCH] i386: Some additional chipset register values validation.
[PATCH] i386: Add missing !X86_PAE dependincy to the 2G/2G split.
[PATCH] x86-64: Don't exclude asm-offsets.c in Documentation/dontdiff
[PATCH] i386: avoid redundant preempt_disable in __unlazy_fpu
[PATCH] i386: white space fixes in i387.h
[PATCH] i386: Drop noisy e820 debugging printks
[PATCH] x86-64: Fix allnoconfig error in genapic_flat.c
[PATCH] x86-64: Shut up warnings for vfat compat ioctls on other file systems
[PATCH] x86-64: Share identical video.S between i386 and x86-64
[PATCH] x86-64: Remove CONFIG_REORDER
[PATCH] x86-64: Print type and size correctly for unknown compat ioctls
[PATCH] i386: Remove copy_*_user BUG_ONs for (size < 0)
[PATCH] i386: Little cleanups in smpboot.c
[PATCH] x86-64: Don't enable NUMA for a single node in K8 NUMA scanning
[PATCH] x86: Use RDTSCP for synchronous get_cycles if possible
[PATCH] i386: Add X86_FEATURE_RDTSCP
[PATCH] i386: Implement X86_FEATURE_SYNC_RDTSC on i386
[PATCH] i386: Implement alternative_io for i386
...
Fix up trivial conflict in include/linux/highmem.h manually.
Signed-off-by: Linus Torvalds <torvalds@linux-foundation.org>
Diffstat (limited to 'mm/slab.c')
-rw-r--r-- | mm/slab.c | 7 |
1 files changed, 5 insertions, 2 deletions
@@ -1146,7 +1146,7 @@ static inline int cache_free_alien(struct kmem_cache *cachep, void *objp) | |||
1146 | * Make sure we are not freeing a object from another node to the array | 1146 | * Make sure we are not freeing a object from another node to the array |
1147 | * cache on this cpu. | 1147 | * cache on this cpu. |
1148 | */ | 1148 | */ |
1149 | if (likely(slabp->nodeid == node) || unlikely(!use_alien_caches)) | 1149 | if (likely(slabp->nodeid == node)) |
1150 | return 0; | 1150 | return 0; |
1151 | 1151 | ||
1152 | l3 = cachep->nodelists[node]; | 1152 | l3 = cachep->nodelists[node]; |
@@ -1394,6 +1394,9 @@ void __init kmem_cache_init(void) | |||
1394 | int order; | 1394 | int order; |
1395 | int node; | 1395 | int node; |
1396 | 1396 | ||
1397 | if (num_possible_nodes() == 1) | ||
1398 | use_alien_caches = 0; | ||
1399 | |||
1397 | for (i = 0; i < NUM_INIT_LISTS; i++) { | 1400 | for (i = 0; i < NUM_INIT_LISTS; i++) { |
1398 | kmem_list3_init(&initkmem_list3[i]); | 1401 | kmem_list3_init(&initkmem_list3[i]); |
1399 | if (i < MAX_NUMNODES) | 1402 | if (i < MAX_NUMNODES) |
@@ -3563,7 +3566,7 @@ static inline void __cache_free(struct kmem_cache *cachep, void *objp) | |||
3563 | check_irq_off(); | 3566 | check_irq_off(); |
3564 | objp = cache_free_debugcheck(cachep, objp, __builtin_return_address(0)); | 3567 | objp = cache_free_debugcheck(cachep, objp, __builtin_return_address(0)); |
3565 | 3568 | ||
3566 | if (cache_free_alien(cachep, objp)) | 3569 | if (use_alien_caches && cache_free_alien(cachep, objp)) |
3567 | return; | 3570 | return; |
3568 | 3571 | ||
3569 | if (likely(ac->avail < ac->limit)) { | 3572 | if (likely(ac->avail < ac->limit)) { |