MIPS: cmpxchg: Use __compiletime_error() for bad cmpxchg() pointers
authorPaul Burton <paul.burton@imgtec.com>
Sat, 10 Jun 2017 00:26:35 +0000 (17:26 -0700)
committerRalf Baechle <ralf@linux-mips.org>
Thu, 29 Jun 2017 00:42:24 +0000 (02:42 +0200)
commit77299db802d4a7ae43f7ca246adbff0420bc9f5a
tree85d2b250525303fc2e96bba1e43152ca889d3b70
parent5154f3b4194910a4216866e7535c37e5bcb17800
MIPS: cmpxchg: Use __compiletime_error() for bad cmpxchg() pointers

Our cmpxchg() implementation relies upon generating a call to a function
which doesn't really exist (__cmpxchg_called_with_bad_pointer) to create
a link failure in cases where cmpxchg() is called with a pointer to a
value of an unsupported size.

The __compiletime_error macro can be used to decorate a function such
that a call to it generates a compile-time, rather than a link-time,
error. This patch uses __compiletime_error to cause bad cmpxchg() calls
to error out at compile time rather than link time, allowing errors to
occur more quickly & making it easier to spot where the problem comes
from.

Signed-off-by: Paul Burton <paul.burton@imgtec.com>
Cc: linux-mips@linux-mips.org
Patchwork: https://patchwork.linux-mips.org/patch/16350/
Signed-off-by: Ralf Baechle <ralf@linux-mips.org>
arch/mips/include/asm/cmpxchg.h