Will Deacon
df77abcafc
ARM: 7099/1: futex: preserve oldval in SMP __futex_atomic_op
...
The SMP implementation of __futex_atomic_op clobbers oldval with the
status flag from the exclusive store. This causes it to always read as
zero when performing the FUTEX_OP_CMP_* operation.
This patch updates the ARM __futex_atomic_op implementations to take a
tmp argument, allowing us to store the strex status flag without
overwriting the register containing oldval.
Cc: stable@kernel.org
Reported-by: Minho Ban <mhban@samsung.com>
Reviewed-by: Nicolas Pitre <nicolas.pitre@linaro.org>
Signed-off-by: Will Deacon <will.deacon@arm.com>
Signed-off-by: Russell King <rmk+kernel@arm.linux.org.uk>
2011-09-26 12:36:47 +01:00
..
2011-08-08 16:41:23 +09:00
2011-07-29 23:35:05 -07:00
2011-07-26 17:41:04 -07:00
2011-09-26 12:36:47 +01:00
2011-09-20 23:42:31 +01:00
2011-08-07 14:07:03 -07:00
2011-08-24 13:10:29 +02:00
2011-07-26 17:12:10 -07:00
2011-09-09 23:33:34 +04:00
2011-09-07 17:22:12 +05:30
2011-07-29 23:35:05 -07:00
2011-08-15 11:58:59 +01:00
2011-08-19 21:21:08 +09:00
2011-08-29 16:34:07 -07:00
2011-07-22 23:09:07 +01:00
2011-08-22 15:57:22 +01:00
2011-09-07 00:47:26 +01:00
2011-07-29 23:35:05 -07:00
2011-07-29 23:35:05 -07:00
2011-07-29 23:35:05 -07:00
2011-07-29 23:35:05 -07:00
2011-07-29 23:35:05 -07:00
2011-07-29 23:35:05 -07:00
2011-07-29 23:35:05 -07:00
2011-07-29 23:35:05 -07:00
2011-07-26 17:41:04 -07:00
2011-08-11 10:10:46 +08:00
2011-08-01 15:16:05 +01:00
2011-07-29 23:35:05 -07:00
2011-08-08 08:24:16 +02:00
2011-07-26 17:41:04 -07:00
2011-07-26 17:12:10 -07:00
2011-07-26 17:12:10 -07:00
2011-09-04 20:21:16 -06:00
2011-08-25 09:08:18 -05:00
2011-07-26 17:12:10 -07:00
2011-09-11 09:11:26 +08:00
2011-07-29 23:35:05 -07:00
2011-08-12 15:40:57 +01:00
2011-08-19 20:57:36 +09:00
2011-07-26 17:41:04 -07:00
2011-07-25 12:43:28 -07:00
2011-07-25 12:38:42 -07:00
2011-07-26 16:49:47 -07:00
2011-07-20 19:11:29 +09:00
2011-08-19 20:56:17 +09:00
2011-07-21 17:28:23 +09:00
2011-08-19 20:57:35 +09:00
2011-08-10 16:00:48 +00:00
2011-07-29 23:35:05 -07:00
2011-08-29 13:37:17 -07:00
2011-07-29 23:35:05 -07:00
2011-07-26 17:41:04 -07:00
2011-07-26 17:41:04 -07:00
2011-07-29 23:35:05 -07:00
2011-08-24 09:45:21 +01:00
2011-07-28 16:02:53 +00:00
2011-09-26 09:36:50 +01:00
2011-08-08 08:38:45 +02:00
2011-09-06 13:19:58 -07:00
2011-07-20 17:20:52 -04:00
2011-07-25 12:43:28 -07:00
2011-08-19 21:21:08 +09:00
2011-08-19 20:57:37 +09:00
2011-07-26 17:12:10 -07:00
2011-08-22 15:57:22 +01:00
2011-07-22 23:09:07 +01:00
2011-09-17 12:47:17 +01:00
2011-07-28 15:25:46 +00:00