|
@@ -2320,16 +2320,12 @@ static inline int alloc_kmem_cache_cpus(struct kmem_cache *s)
|
|
|
BUILD_BUG_ON(PERCPU_DYNAMIC_EARLY_SIZE <
|
|
|
SLUB_PAGE_SHIFT * sizeof(struct kmem_cache_cpu));
|
|
|
|
|
|
-#ifdef CONFIG_CMPXCHG_LOCAL
|
|
|
/*
|
|
|
- * Must align to double word boundary for the double cmpxchg instructions
|
|
|
- * to work.
|
|
|
+ * Must align to double word boundary for the double cmpxchg
|
|
|
+ * instructions to work; see __pcpu_double_call_return_bool().
|
|
|
*/
|
|
|
- s->cpu_slab = __alloc_percpu(sizeof(struct kmem_cache_cpu), 2 * sizeof(void *));
|
|
|
-#else
|
|
|
- /* Regular alignment is sufficient */
|
|
|
- s->cpu_slab = alloc_percpu(struct kmem_cache_cpu);
|
|
|
-#endif
|
|
|
+ s->cpu_slab = __alloc_percpu(sizeof(struct kmem_cache_cpu),
|
|
|
+ 2 * sizeof(void *));
|
|
|
|
|
|
if (!s->cpu_slab)
|
|
|
return 0;
|