diff options
author | Linus Torvalds <torvalds@linux-foundation.org> | 2009-06-16 22:50:13 -0400 |
---|---|---|
committer | Linus Torvalds <torvalds@linux-foundation.org> | 2009-06-16 22:50:13 -0400 |
commit | 517d08699b250021303f9a7cf0d758b6dc0748ed (patch) | |
tree | 5e5b0134c3fffb78fe9d8b1641a64ff28fdd7bbc /mm/slab.c | |
parent | 8eeee4e2f04fc551f50c9d9847da2d73d7d33728 (diff) | |
parent | a34601c5d84134055782ee031d58d82f5440e918 (diff) |
Merge branch 'akpm'
* akpm: (182 commits)
fbdev: bf54x-lq043fb: use kzalloc over kmalloc/memset
fbdev: *bfin*: fix __dev{init,exit} markings
fbdev: *bfin*: drop unnecessary calls to memset
fbdev: bfin-t350mcqb-fb: drop unused local variables
fbdev: blackfin has __raw I/O accessors, so use them in fb.h
fbdev: s1d13xxxfb: add accelerated bitblt functions
tcx: use standard fields for framebuffer physical address and length
fbdev: add support for handoff from firmware to hw framebuffers
intelfb: fix a bug when changing video timing
fbdev: use framebuffer_release() for freeing fb_info structures
radeon: P2G2CLK_ALWAYS_ONb tested twice, should 2nd be P2G2CLK_DAC_ALWAYS_ONb?
s3c-fb: CPUFREQ frequency scaling support
s3c-fb: fix resource releasing on error during probing
carminefb: fix possible access beyond end of carmine_modedb[]
acornfb: remove fb_mmap function
mb862xxfb: use CONFIG_OF instead of CONFIG_PPC_OF
mb862xxfb: restrict compliation of platform driver to PPC
Samsung SoC Framebuffer driver: add Alpha Channel support
atmel-lcdc: fix pixclock upper bound detection
offb: use framebuffer_alloc() to allocate fb_info struct
...
Manually fix up conflicts due to kmemcheck in mm/slab.c
Diffstat (limited to 'mm/slab.c')
-rw-r--r-- | mm/slab.c | 11 |
1 files changed, 4 insertions, 7 deletions
@@ -818,7 +818,6 @@ static void __slab_error(const char *function, struct kmem_cache *cachep, | |||
818 | */ | 818 | */ |
819 | 819 | ||
820 | static int use_alien_caches __read_mostly = 1; | 820 | static int use_alien_caches __read_mostly = 1; |
821 | static int numa_platform __read_mostly = 1; | ||
822 | static int __init noaliencache_setup(char *s) | 821 | static int __init noaliencache_setup(char *s) |
823 | { | 822 | { |
824 | use_alien_caches = 0; | 823 | use_alien_caches = 0; |
@@ -1377,10 +1376,8 @@ void __init kmem_cache_init(void) | |||
1377 | int order; | 1376 | int order; |
1378 | int node; | 1377 | int node; |
1379 | 1378 | ||
1380 | if (num_possible_nodes() == 1) { | 1379 | if (num_possible_nodes() == 1) |
1381 | use_alien_caches = 0; | 1380 | use_alien_caches = 0; |
1382 | numa_platform = 0; | ||
1383 | } | ||
1384 | 1381 | ||
1385 | for (i = 0; i < NUM_INIT_LISTS; i++) { | 1382 | for (i = 0; i < NUM_INIT_LISTS; i++) { |
1386 | kmem_list3_init(&initkmem_list3[i]); | 1383 | kmem_list3_init(&initkmem_list3[i]); |
@@ -1627,7 +1624,7 @@ static void *kmem_getpages(struct kmem_cache *cachep, gfp_t flags, int nodeid) | |||
1627 | if (cachep->flags & SLAB_RECLAIM_ACCOUNT) | 1624 | if (cachep->flags & SLAB_RECLAIM_ACCOUNT) |
1628 | flags |= __GFP_RECLAIMABLE; | 1625 | flags |= __GFP_RECLAIMABLE; |
1629 | 1626 | ||
1630 | page = alloc_pages_node(nodeid, flags | __GFP_NOTRACK, cachep->gfporder); | 1627 | page = alloc_pages_exact_node(nodeid, flags | __GFP_NOTRACK, cachep->gfporder); |
1631 | if (!page) | 1628 | if (!page) |
1632 | return NULL; | 1629 | return NULL; |
1633 | 1630 | ||
@@ -3193,7 +3190,7 @@ retry: | |||
3193 | if (local_flags & __GFP_WAIT) | 3190 | if (local_flags & __GFP_WAIT) |
3194 | local_irq_enable(); | 3191 | local_irq_enable(); |
3195 | kmem_flagcheck(cache, flags); | 3192 | kmem_flagcheck(cache, flags); |
3196 | obj = kmem_getpages(cache, local_flags, -1); | 3193 | obj = kmem_getpages(cache, local_flags, numa_node_id()); |
3197 | if (local_flags & __GFP_WAIT) | 3194 | if (local_flags & __GFP_WAIT) |
3198 | local_irq_disable(); | 3195 | local_irq_disable(); |
3199 | if (obj) { | 3196 | if (obj) { |
@@ -3530,7 +3527,7 @@ static inline void __cache_free(struct kmem_cache *cachep, void *objp) | |||
3530 | * variable to skip the call, which is mostly likely to be present in | 3527 | * variable to skip the call, which is mostly likely to be present in |
3531 | * the cache. | 3528 | * the cache. |
3532 | */ | 3529 | */ |
3533 | if (numa_platform && cache_free_alien(cachep, objp)) | 3530 | if (nr_online_nodes > 1 && cache_free_alien(cachep, objp)) |
3534 | return; | 3531 | return; |
3535 | 3532 | ||
3536 | if (likely(ac->avail < ac->limit)) { | 3533 | if (likely(ac->avail < ac->limit)) { |