forked from luck/tmp_suning_uos_patched
arm64 fixes for -rc1
- Fix clang build breakage with CONFIG_OPTIMIZE_INLINING=y - Fix compilation of pointer tagging selftest - Fix COND_SYSCALL definitions to work with CFI checks - Fix stale documentation reference in our Kconfig -----BEGIN PGP SIGNATURE----- iQFEBAABCgAuFiEEPxTL6PPUbjXGY88ct6xw3ITBYzQFAl2DO5cQHHdpbGxAa2Vy bmVsLm9yZwAKCRC3rHDchMFjNBHhCADEoSOk8WSijBvC4WNCPXBvukuk2KEwal2s By+iEo3byr9uRskduddumEnTA3F5otfV7VR3HG34P8K3dzP541Zw8sPs5Q1MU/Zo 7SzU6J14q+Q3V/+F0RDpajP60bBbmjYQi23xmO8hnnHbZlIV7dteD+JvMWrNh31M nTvPHpS+jm/SNFUSL1EMnbr2Au5UhN8j+9Qk1NyPgmTV9DkS4drDs4lBqp8VhvCD v6kC3vdW5DiXvMHoa5RXO+3B57HYVmlhylEO0ZOmKxyZEhph1jiuR2ng4CDYtxo3 qngynXxa7u79a6TdDhnzresaku4xM22UO9bf1WkVq9yv6JQ7/ArV =wZPH -----END PGP SIGNATURE----- Merge tag 'arm64-fixes' of git://git.kernel.org/pub/scm/linux/kernel/git/arm64/linux Pull arm64 fixes from Will Deacon: "We've had a few arm64 fixes trickle in this week. Nothing catastophic, but all things that should be addressed: - Fix clang build breakage with CONFIG_OPTIMIZE_INLINING=y - Fix compilation of pointer tagging selftest - Fix COND_SYSCALL definitions to work with CFI checks - Fix stale documentation reference in our Kconfig" * tag 'arm64-fixes' of git://git.kernel.org/pub/scm/linux/kernel/git/arm64/linux: arm64: Fix reference to docs for ARM64_TAGGED_ADDR_ABI arm64: fix function types in COND_SYSCALL selftests, arm64: add kernel headers path for tags_test arm64: fix unreachable code issue with cmpxchg
This commit is contained in:
commit
8c2b418c3f
|
@ -1135,7 +1135,7 @@ config ARM64_TAGGED_ADDR_ABI
|
|||
When this option is enabled, user applications can opt in to a
|
||||
relaxed ABI via prctl() allowing tagged addresses to be passed
|
||||
to system calls as pointer arguments. For details, see
|
||||
Documentation/arm64/tagged-address-abi.txt.
|
||||
Documentation/arm64/tagged-address-abi.rst.
|
||||
|
||||
menuconfig COMPAT
|
||||
bool "Kernel support for 32-bit EL0"
|
||||
|
|
|
@ -62,7 +62,7 @@ __XCHG_CASE( , , mb_, 64, dmb ish, nop, , a, l, "memory")
|
|||
#undef __XCHG_CASE
|
||||
|
||||
#define __XCHG_GEN(sfx) \
|
||||
static inline unsigned long __xchg##sfx(unsigned long x, \
|
||||
static __always_inline unsigned long __xchg##sfx(unsigned long x, \
|
||||
volatile void *ptr, \
|
||||
int size) \
|
||||
{ \
|
||||
|
@ -148,7 +148,7 @@ __CMPXCHG_DBL(_mb)
|
|||
#undef __CMPXCHG_DBL
|
||||
|
||||
#define __CMPXCHG_GEN(sfx) \
|
||||
static inline unsigned long __cmpxchg##sfx(volatile void *ptr, \
|
||||
static __always_inline unsigned long __cmpxchg##sfx(volatile void *ptr, \
|
||||
unsigned long old, \
|
||||
unsigned long new, \
|
||||
int size) \
|
||||
|
@ -255,7 +255,7 @@ __CMPWAIT_CASE( , , 64);
|
|||
#undef __CMPWAIT_CASE
|
||||
|
||||
#define __CMPWAIT_GEN(sfx) \
|
||||
static inline void __cmpwait##sfx(volatile void *ptr, \
|
||||
static __always_inline void __cmpwait##sfx(volatile void *ptr, \
|
||||
unsigned long val, \
|
||||
int size) \
|
||||
{ \
|
||||
|
|
|
@ -8,6 +8,8 @@
|
|||
#ifndef __ASM_SYSCALL_WRAPPER_H
|
||||
#define __ASM_SYSCALL_WRAPPER_H
|
||||
|
||||
struct pt_regs;
|
||||
|
||||
#define SC_ARM64_REGS_TO_ARGS(x, ...) \
|
||||
__MAP(x,__SC_ARGS \
|
||||
,,regs->regs[0],,regs->regs[1],,regs->regs[2] \
|
||||
|
@ -35,8 +37,11 @@
|
|||
ALLOW_ERROR_INJECTION(__arm64_compat_sys_##sname, ERRNO); \
|
||||
asmlinkage long __arm64_compat_sys_##sname(const struct pt_regs *__unused)
|
||||
|
||||
#define COND_SYSCALL_COMPAT(name) \
|
||||
cond_syscall(__arm64_compat_sys_##name);
|
||||
#define COND_SYSCALL_COMPAT(name) \
|
||||
asmlinkage long __weak __arm64_compat_sys_##name(const struct pt_regs *regs) \
|
||||
{ \
|
||||
return sys_ni_syscall(); \
|
||||
}
|
||||
|
||||
#define COMPAT_SYS_NI(name) \
|
||||
SYSCALL_ALIAS(__arm64_compat_sys_##name, sys_ni_posix_timers);
|
||||
|
@ -70,7 +75,11 @@
|
|||
#endif
|
||||
|
||||
#ifndef COND_SYSCALL
|
||||
#define COND_SYSCALL(name) cond_syscall(__arm64_sys_##name)
|
||||
#define COND_SYSCALL(name) \
|
||||
asmlinkage long __weak __arm64_sys_##name(const struct pt_regs *regs) \
|
||||
{ \
|
||||
return sys_ni_syscall(); \
|
||||
}
|
||||
#endif
|
||||
|
||||
#ifndef SYS_NI
|
||||
|
|
|
@ -4,6 +4,7 @@
|
|||
ARCH ?= $(shell uname -m 2>/dev/null || echo not)
|
||||
|
||||
ifneq (,$(filter $(ARCH),aarch64 arm64))
|
||||
CFLAGS += -I../../../../usr/include/
|
||||
TEST_GEN_PROGS := tags_test
|
||||
TEST_PROGS := run_tags_test.sh
|
||||
endif
|
||||
|
|
Loading…
Reference in New Issue
Block a user