summaryrefslogtreecommitdiffstats
path: root/arch/x86/lib
diff options
context:
space:
mode:
authorIngo Molnar <mingo@kernel.org>2024-09-29 08:57:18 +0200
committerIngo Molnar <mingo@kernel.org>2024-09-29 08:57:18 +0200
commitae39e0bd150bd2739582f72ad70b5a0b15e74576 (patch)
treea880ea77d20f32b6a85b9d4bbb1b43198c7ef801 /arch/x86/lib
parentjump_label: Fix static_key_slow_dec() yet again (diff)
parentlocking/rwsem: Move is_rwsem_reader_owned() and rwsem_owner() under CONFIG_DE... (diff)
downloadlinux-ae39e0bd150bd2739582f72ad70b5a0b15e74576.tar.xz
linux-ae39e0bd150bd2739582f72ad70b5a0b15e74576.zip
Merge branch 'locking/core' into locking/urgent, to pick up pending commits
Merge all pending locking commits into a single branch. Signed-off-by: Ingo Molnar <mingo@kernel.org>
Diffstat (limited to 'arch/x86/lib')
-rw-r--r--arch/x86/lib/atomic64_cx8_32.S9
1 files changed, 7 insertions, 2 deletions
diff --git a/arch/x86/lib/atomic64_cx8_32.S b/arch/x86/lib/atomic64_cx8_32.S
index 90afb488b396..b2eff07d65e4 100644
--- a/arch/x86/lib/atomic64_cx8_32.S
+++ b/arch/x86/lib/atomic64_cx8_32.S
@@ -16,6 +16,11 @@
cmpxchg8b (\reg)
.endm
+.macro read64_nonatomic reg
+ movl (\reg), %eax
+ movl 4(\reg), %edx
+.endm
+
SYM_FUNC_START(atomic64_read_cx8)
read64 %ecx
RET
@@ -51,7 +56,7 @@ SYM_FUNC_START(atomic64_\func\()_return_cx8)
movl %edx, %edi
movl %ecx, %ebp
- read64 %ecx
+ read64_nonatomic %ecx
1:
movl %eax, %ebx
movl %edx, %ecx
@@ -79,7 +84,7 @@ addsub_return sub sub sbb
SYM_FUNC_START(atomic64_\func\()_return_cx8)
pushl %ebx
- read64 %esi
+ read64_nonatomic %esi
1:
movl %eax, %ebx
movl %edx, %ecx