diff options
author | Will Deacon <will.deacon@arm.com> | 2019-04-08 16:23:17 +0300 |
---|---|---|
committer | Greg Kroah-Hartman <gregkh@linuxfoundation.org> | 2019-05-10 18:54:11 +0300 |
commit | 9ccdbde1850c8b9e19ebf3b28c63d4902f90e470 (patch) | |
tree | 8d5eae066e51e41f1b7e72c677982d563d916085 /security/integrity | |
parent | 0f4ef8fb1dae3cf2c1017fb46b9d14b1de2e501a (diff) | |
download | linux-9ccdbde1850c8b9e19ebf3b28c63d4902f90e470.tar.xz |
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.
Cc: <stable@kernel.org>
Fixes: 6170a97460db ("arm64: Atomic operations")
Signed-off-by: Will Deacon <will.deacon@arm.com>
Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
Diffstat (limited to 'security/integrity')
0 files changed, 0 insertions, 0 deletions