1
0
Fork 0
alistair23-linux/arch
Will Deacon c0385b24af arm64: introduce CONFIG_ARM64_LSE_ATOMICS as fallback to ll/sc atomics
In order to patch in the new atomic instructions at runtime, we need to
generate wrappers around the out-of-line exclusive load/store atomics.

This patch adds a new Kconfig option, CONFIG_ARM64_LSE_ATOMICS. which
causes our atomic functions to branch to the out-of-line ll/sc
implementations. To avoid the register spill overhead of the PCS, the
out-of-line functions are compiled with specific compiler flags to
force out-of-line save/restore of any registers that are usually
caller-saved.

Reviewed-by: Catalin Marinas <catalin.marinas@arm.com>
Signed-off-by: Will Deacon <will.deacon@arm.com>
2015-07-27 15:28:50 +01:00
..
alpha atomic: Provide atomic_{or,xor,and} 2015-07-27 14:06:24 +02:00
arc atomic: Collapse all atomic_{set,clear}_mask definitions 2015-07-27 14:06:24 +02:00
arm atomic: Provide atomic_{or,xor,and} 2015-07-27 14:06:24 +02:00
arm64 arm64: introduce CONFIG_ARM64_LSE_ATOMICS as fallback to ll/sc atomics 2015-07-27 15:28:50 +01:00
avr32 atomic: Provide atomic_{or,xor,and} 2015-07-27 14:06:24 +02:00
blackfin atomic: Replace atomic_{set,clear}_mask() usage 2015-07-27 14:06:24 +02:00
c6x mm: clean up per architecture MM hook header files 2015-07-17 16:39:53 -07:00
cris mm: clean up per architecture MM hook header files 2015-07-17 16:39:53 -07:00
frv atomic: Collapse all atomic_{set,clear}_mask definitions 2015-07-27 14:06:24 +02:00
h8300 atomic: Collapse all atomic_{set,clear}_mask definitions 2015-07-27 14:06:24 +02:00
hexagon atomic: Provide atomic_{or,xor,and} 2015-07-27 14:06:24 +02:00
ia64 atomic: Provide atomic_{or,xor,and} 2015-07-27 14:06:24 +02:00
m32r atomic: Replace atomic_{set,clear}_mask() usage 2015-07-27 14:06:24 +02:00
m68k atomic: Collapse all atomic_{set,clear}_mask definitions 2015-07-27 14:06:24 +02:00
metag atomic: Collapse all atomic_{set,clear}_mask definitions 2015-07-27 14:06:24 +02:00
microblaze mm: clean up per architecture MM hook header files 2015-07-17 16:39:53 -07:00
mips atomic: Provide atomic_{or,xor,and} 2015-07-27 14:06:24 +02:00
mn10300 atomic: Replace atomic_{set,clear}_mask() usage 2015-07-27 14:06:24 +02:00
nios2 mm: clean up per architecture MM hook header files 2015-07-17 16:39:53 -07:00
openrisc mm: clean up per architecture MM hook header files 2015-07-17 16:39:53 -07:00
parisc atomic: Provide atomic_{or,xor,and} 2015-07-27 14:06:24 +02:00
powerpc atomic: Collapse all atomic_{set,clear}_mask definitions 2015-07-27 14:06:24 +02:00
s390 atomic: Replace atomic_{set,clear}_mask() usage 2015-07-27 14:06:24 +02:00
score mm: clean up per architecture MM hook header files 2015-07-17 16:39:53 -07:00
sh atomic: Collapse all atomic_{set,clear}_mask definitions 2015-07-27 14:06:24 +02:00
sparc atomic: Provide atomic_{or,xor,and} 2015-07-27 14:06:24 +02:00
tile atomic: Provide atomic_{or,xor,and} 2015-07-27 14:06:24 +02:00
um mm: clean up per architecture MM hook header files 2015-07-17 16:39:53 -07:00
unicore32 mm: clean up per architecture MM hook header files 2015-07-17 16:39:53 -07:00
x86 atomic: Collapse all atomic_{set,clear}_mask definitions 2015-07-27 14:06:24 +02:00
xtensa atomic: Collapse all atomic_{set,clear}_mask definitions 2015-07-27 14:06:24 +02:00
.gitignore
Kconfig x86/fpu, sched: Introduce CONFIG_ARCH_WANTS_DYNAMIC_TASK_STRUCT and use it on x86 2015-07-18 03:42:51 +02:00