summaryrefslogtreecommitdiff
path: root/arch/arm/include/asm/futex.h
diff options
context:
space:
mode:
authorLinus Walleij <linus.walleij@linaro.org>2020-05-27 17:15:52 +0300
committerLinus Walleij <linus.walleij@linaro.org>2020-05-27 17:15:52 +0300
commitce1d966a302229a88bcb4398a5ca76d657b06848 (patch)
tree812671d666fef8b5a955087cff5dc7b3cd555a35 /arch/arm/include/asm/futex.h
parentf8af9113b1cf71cd21b0a027d38b06c15989c789 (diff)
parent9cb1fd0efd195590b828b9b865421ad345a4a145 (diff)
downloadlinux-ce1d966a302229a88bcb4398a5ca76d657b06848.tar.xz
Merge tag 'v5.7-rc7' into devel
Linux 5.7-rc7
Diffstat (limited to 'arch/arm/include/asm/futex.h')
-rw-r--r--arch/arm/include/asm/futex.h9
1 files changed, 7 insertions, 2 deletions
diff --git a/arch/arm/include/asm/futex.h b/arch/arm/include/asm/futex.h
index e133da303a98..a9151884bc85 100644
--- a/arch/arm/include/asm/futex.h
+++ b/arch/arm/include/asm/futex.h
@@ -165,8 +165,13 @@ arch_futex_atomic_op_inuser(int op, int oparg, int *oval, u32 __user *uaddr)
preempt_enable();
#endif
- if (!ret)
- *oval = oldval;
+ /*
+ * Store unconditionally. If ret != 0 the extra store is the least
+ * of the worries but GCC cannot figure out that __futex_atomic_op()
+ * is either setting ret to -EFAULT or storing the old value in
+ * oldval which results in a uninitialized warning at the call site.
+ */
+ *oval = oldval;
return ret;
}