Will Deacon
bd3ec28fb6
arm64: futex: Bound number of LDXR/STXR loops in FUTEX_WAKE_OP
...
commit 03110a5cb2161690ae5ac04994d47ed0cd6cef75 upstream.
Our futex implementation makes use of LDXR/STXR loops to perform atomic
updates to user memory from atomic context. This can lead to latency
problems if we end up spinning around the LL/SC sequence at the expense
of doing something useful.
Rework our futex atomic operations so that we return -EAGAIN if we fail
to update the futex word after 128 attempts. The core futex code will
reschedule if necessary and we'll try again later.
Fixes: 6170a97460 ("arm64: Atomic operations")
Signed-off-by: Will Deacon <will.deacon@arm.com>
[bwh: Backported to 4.9: adjust context]
Signed-off-by: Ben Hutchings <ben@decadent.org.uk>
Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
2021-03-30 14:41:42 +02:00
..
alpha
alpha: switch __copy_user() and __do_clean_user() to normal calling conventions
2021-03-17 16:10:18 +01:00
arc
arch/arc: add copy_user_page() to <asm/page.h> to fix build error on ARC
2021-01-23 15:38:17 +01:00
arm
KVM: arm64: Fix exclusive limit for IPA size
2021-03-17 16:10:18 +01:00
arm64
arm64: futex: Bound number of LDXR/STXR loops in FUTEX_WAKE_OP
2021-03-30 14:41:42 +02:00
avr32
Merge branch 'akpm' (patches from Andrew)
2016-10-07 21:38:00 -07:00
blackfin
pinctrl: adi2: Fix Kconfig build problem
2017-12-20 10:07:32 +01:00
c6x
c6x/ptrace: Remove useless PTRACE_SETREGSET implementation
2017-03-31 10:31:46 +02:00
cris
cris: Only build flash rescue image if CONFIG_ETRAX_AXISFLASHMAP is selected
2017-01-12 11:39:24 +01:00
frv
futex: Remove duplicated code and fix undefined behaviour
2018-05-19 10:27:00 +02:00
h8300
h8300: fix PREEMPTION build, TI_PRE_COUNT undefined
2021-02-23 13:59:16 +01:00
hexagon
hexagon: work around compiler crash
2020-01-23 08:19:38 +01:00
ia64
ia64: fix ptrace(PTRACE_SYSCALL_INFO_EXIT) sign
2021-03-30 14:41:40 +02:00
m32r
mm: replace access_process_vm() write parameter with gup_flags
2016-10-19 08:31:25 -07:00
m68k
m68k: q40: Fix info-leak in rtc_ioctl
2020-10-01 20:40:01 +02:00
metag
metag/uaccess: Check access_ok in strncpy_from_user
2017-05-25 15:44:46 +02:00
microblaze
microblaze: Prevent the overflow of the start
2020-02-28 15:42:42 +01:00
mips
MIPS: lantiq: Explicitly compare LTQ_EBU_PCC_ISTAT against 0
2021-03-03 17:44:34 +01:00
mn10300
mn10300/misalignment: Use SIGSEGV SEGV_MAPERR to report a failed user copy
2018-02-17 13:21:20 +01:00
nios2
nios2: ksyms: Add missing symbol exports
2020-01-29 10:24:18 +01:00
openrisc
openrisc: Fix issue with argument clobbering for clone/fork
2020-06-30 15:38:28 -04:00
parisc
parisc: add support for cmpxchg on u8 pointers
2020-08-21 11:01:51 +02:00
powerpc
powerpc/4xx: Fix build errors from mfdcr()
2021-03-30 14:41:38 +02:00
s390
s390/smp: __smp_rescan_cpus() - move cpumask away from stack
2021-03-17 16:10:14 +01:00
score
Merge branch 'gup_flag-cleanups'
2016-10-19 08:39:47 -07:00
sh
sh: dma: fix kconfig dependency for G2_DMA
2021-01-30 13:27:15 +01:00
sparc
sparc32: fix a user-triggerable oops in clear_user()
2021-03-03 17:44:44 +01:00
tile
locking/x86: Remove the unused atomic_inc_short() methd
2020-01-12 11:24:19 +01:00
um
um: chan_xterm: Fix fd leak
2020-12-29 13:45:00 +01:00
unicore32
unicore32: use simpler API for random address requests
2016-10-11 15:06:32 -07:00
x86
x86/tlb: Flush global mappings when KAISER is disabled
2021-03-30 14:41:40 +02:00
xtensa
xtensa: disable preemption around cache alias management calls
2020-11-24 13:03:08 +01:00
.gitignore
Kconfig
cpu/hotplug: Provide knobs to control SMT
2018-08-15 18:14:46 +02:00