diff options
author | Vineet Gupta <vgupta@synopsys.com> | 2016-10-20 07:39:45 -0700 |
---|---|---|
committer | Vineet Gupta <vgupta@synopsys.com> | 2016-10-24 09:24:26 -0700 |
commit | 91e040a79df73d371f70792f30380d4e44805250 (patch) | |
tree | b2732eadb60fc5575c465a81cc637a899330c1b5 /arch/arc/include/asm/syscalls.h | |
parent | 1dec78585328db00e33fb18dc1a6deed0e2095a5 (diff) | |
download | linux-stable-91e040a79df73d371f70792f30380d4e44805250.tar.gz linux-stable-91e040a79df73d371f70792f30380d4e44805250.tar.bz2 linux-stable-91e040a79df73d371f70792f30380d4e44805250.zip |
ARC: syscall for userspace cmpxchg assist
Older ARC700 cores (ARC750 specifically) lack instructions to implement
atomic r-w-w. This is problematic for userspace libraries such as NPTL
which need atomic primitives. So enable them by providing kernel assist.
This is costly but really the only sane soluton (othern than tight
spinning using the otherwise availiable atomic exchange EX instruciton).
Good thing is there are only a few of these cores running Linux out in
the wild.
This only works on UP systems.
Reviewed-by: Colin Ian King <colin.king@canonical.com>
Signed-off-by: Vineet Gupta <vgupta@synopsys.com>
Diffstat (limited to 'arch/arc/include/asm/syscalls.h')
-rw-r--r-- | arch/arc/include/asm/syscalls.h | 1 |
1 files changed, 1 insertions, 0 deletions
diff --git a/arch/arc/include/asm/syscalls.h b/arch/arc/include/asm/syscalls.h index e56f9fcc5581..772b67ca56e7 100644 --- a/arch/arc/include/asm/syscalls.h +++ b/arch/arc/include/asm/syscalls.h @@ -17,6 +17,7 @@ int sys_clone_wrapper(int, int, int, int, int); int sys_cacheflush(uint32_t, uint32_t uint32_t); int sys_arc_settls(void *); int sys_arc_gettls(void); +int sys_arc_usr_cmpxchg(int *, int, int); #include <asm-generic/syscalls.h> |