diff options
author | Heiko Carstens <heiko.carstens@de.ibm.com> | 2012-01-12 20:17:33 -0500 |
---|---|---|
committer | Linus Torvalds <torvalds@linux-foundation.org> | 2012-01-12 23:13:03 -0500 |
commit | 2565409fc0303f3ab8d66b8326702a687962a29b (patch) | |
tree | b57f238d77ee87a991371a7021462b8c71351659 /mm/slub.c | |
parent | 4156153c4daddf12dd386016f96a947a01e93bf4 (diff) |
mm,x86,um: move CMPXCHG_DOUBLE config option
Move CMPXCHG_DOUBLE and rename it to HAVE_CMPXCHG_DOUBLE so architectures
can simply select the option if it is supported.
Signed-off-by: Heiko Carstens <heiko.carstens@de.ibm.com>
Acked-by: Christoph Lameter <cl@linux.com>
Cc: Pekka Enberg <penberg@kernel.org>
Cc: Ingo Molnar <mingo@elte.hu>
Cc: Thomas Gleixner <tglx@linutronix.de>
Cc: "H. Peter Anvin" <hpa@zytor.com>
Signed-off-by: Andrew Morton <akpm@linux-foundation.org>
Signed-off-by: Linus Torvalds <torvalds@linux-foundation.org>
Diffstat (limited to 'mm/slub.c')
-rw-r--r-- | mm/slub.c | 9 |
1 files changed, 6 insertions, 3 deletions
@@ -366,7 +366,8 @@ static inline bool __cmpxchg_double_slab(struct kmem_cache *s, struct page *page | |||
366 | const char *n) | 366 | const char *n) |
367 | { | 367 | { |
368 | VM_BUG_ON(!irqs_disabled()); | 368 | VM_BUG_ON(!irqs_disabled()); |
369 | #if defined(CONFIG_CMPXCHG_DOUBLE) && defined(CONFIG_HAVE_ALIGNED_STRUCT_PAGE) | 369 | #if defined(CONFIG_HAVE_CMPXCHG_DOUBLE) && \ |
370 | defined(CONFIG_HAVE_ALIGNED_STRUCT_PAGE) | ||
370 | if (s->flags & __CMPXCHG_DOUBLE) { | 371 | if (s->flags & __CMPXCHG_DOUBLE) { |
371 | if (cmpxchg_double(&page->freelist, &page->counters, | 372 | if (cmpxchg_double(&page->freelist, &page->counters, |
372 | freelist_old, counters_old, | 373 | freelist_old, counters_old, |
@@ -400,7 +401,8 @@ static inline bool cmpxchg_double_slab(struct kmem_cache *s, struct page *page, | |||
400 | void *freelist_new, unsigned long counters_new, | 401 | void *freelist_new, unsigned long counters_new, |
401 | const char *n) | 402 | const char *n) |
402 | { | 403 | { |
403 | #if defined(CONFIG_CMPXCHG_DOUBLE) && defined(CONFIG_HAVE_ALIGNED_STRUCT_PAGE) | 404 | #if defined(CONFIG_HAVE_CMPXCHG_DOUBLE) && \ |
405 | defined(CONFIG_HAVE_ALIGNED_STRUCT_PAGE) | ||
404 | if (s->flags & __CMPXCHG_DOUBLE) { | 406 | if (s->flags & __CMPXCHG_DOUBLE) { |
405 | if (cmpxchg_double(&page->freelist, &page->counters, | 407 | if (cmpxchg_double(&page->freelist, &page->counters, |
406 | freelist_old, counters_old, | 408 | freelist_old, counters_old, |
@@ -3014,7 +3016,8 @@ static int kmem_cache_open(struct kmem_cache *s, | |||
3014 | } | 3016 | } |
3015 | } | 3017 | } |
3016 | 3018 | ||
3017 | #if defined(CONFIG_CMPXCHG_DOUBLE) && defined(CONFIG_HAVE_ALIGNED_STRUCT_PAGE) | 3019 | #if defined(CONFIG_HAVE_CMPXCHG_DOUBLE) && \ |
3020 | defined(CONFIG_HAVE_ALIGNED_STRUCT_PAGE) | ||
3018 | if (system_has_cmpxchg_double() && (s->flags & SLAB_DEBUG_FLAGS) == 0) | 3021 | if (system_has_cmpxchg_double() && (s->flags & SLAB_DEBUG_FLAGS) == 0) |
3019 | /* Enable fast mode */ | 3022 | /* Enable fast mode */ |
3020 | s->flags |= __CMPXCHG_DOUBLE; | 3023 | s->flags |= __CMPXCHG_DOUBLE; |