summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorTejun Heo <tj@kernel.org>2014-06-18 01:12:33 +0200
committerTejun Heo <tj@kernel.org>2014-06-18 01:12:33 +0200
commit6adc5cac538b5d9162d8bcdb6145319592afc0d6 (patch)
treea527bfaa21feab1417b31f135c406c92d776b56a
parentepoll: fix use-after-free in eventpoll_release_file (diff)
downloadlinux-6adc5cac538b5d9162d8bcdb6145319592afc0d6.tar.xz
linux-6adc5cac538b5d9162d8bcdb6145319592afc0d6.zip
percpu: disallow archs from overriding SHIFT_PERCPU_PTR()
It has been about half a decade since all archs started using the dynamic percpu allocator and thus the same SHIFT_PERCPU_PTR() implementation. There's no benefit in overriding SHIFT_PERCPU_PTR() anymore. Remove #ifndef around it to clarify that this is identical regardless of the arch. This patch doesn't cause any functional difference. Signed-off-by: Tejun Heo <tj@kernel.org> Acked-by: Christoph Lameter <cl@linux.com>
-rw-r--r--include/asm-generic/percpu.h9
1 files changed, 3 insertions, 6 deletions
diff --git a/include/asm-generic/percpu.h b/include/asm-generic/percpu.h
index 0703aa75b5e8..63d2b68c826e 100644
--- a/include/asm-generic/percpu.h
+++ b/include/asm-generic/percpu.h
@@ -36,17 +36,14 @@ extern unsigned long __per_cpu_offset[NR_CPUS];
#endif
/*
- * Add a offset to a pointer but keep the pointer as is.
- *
- * Only S390 provides its own means of moving the pointer.
+ * Add an offset to a pointer but keep the pointer as-is. Use RELOC_HIDE()
+ * to prevent the compiler from making incorrect assumptions about the
+ * pointer value. The weird cast keeps both GCC and sparse happy.
*/
-#ifndef SHIFT_PERCPU_PTR
-/* Weird cast keeps both GCC and sparse happy. */
#define SHIFT_PERCPU_PTR(__p, __offset) ({ \
__verify_pcpu_ptr((__p)); \
RELOC_HIDE((typeof(*(__p)) __kernel __force *)(__p), (__offset)); \
})
-#endif
/*
* A percpu variable may point to a discarded regions. The following are