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-09-07 00:48:03 +01:00
2011-07-29 23:35:05 -07:00
2011-03-10 15:16:29 +00:00
2009-02-01 11:01:22 +05:30
2009-12-12 13:08:14 +01:00
2011-07-07 15:31:05 +01:00
2011-07-26 16:49:47 -07:00
2011-07-26 16:49:46 -07:00
2009-06-11 21:02:14 +02:00
2008-09-01 12:06:27 +01:00
2009-01-14 19:56:50 -08:00
2010-12-05 08:39:36 +00:00
2011-03-16 23:35:26 +00:00
2010-10-04 20:57:09 +01:00
2011-07-19 18:09:45 +02:00
2010-01-10 13:03:52 +00:00
2011-04-16 21:42:59 +01:00
2009-07-22 00:28:38 +02:00
2008-10-23 12:53:32 +01:00
2011-07-12 11:08:12 +01:00
2011-07-18 15:30:57 -04:00
2010-11-04 15:44:31 +00:00
2011-05-14 21:36:55 +01:00
2011-07-02 10:56:10 +01:00
2010-01-15 17:10:14 +09:00
2011-05-26 10:31:06 +01:00
2009-03-15 21:01:20 -04:00
2009-05-29 08:40:02 -07:00
2008-08-07 09:55:48 +01:00
2011-01-27 11:48:58 +00:00
2011-03-31 11:26:23 -03:00
2010-09-02 15:28:43 +01:00
2011-09-26 12:36:47 +01:00
2011-03-31 11:26:23 -03:00
2011-02-12 11:52:21 +00:00
2011-02-12 11:52:21 +00:00
2011-03-16 23:35:26 +00:00
2011-03-31 11:26:23 -03:00
2008-08-07 09:55:48 +01:00
2010-12-20 15:08:01 +00:00
2011-02-23 17:24:17 +00:00
2010-12-06 11:55:57 +00:00
2011-03-29 14:47:57 +02:00
2011-07-07 19:20:51 +01:00
2011-01-31 10:53:42 +00:00
2010-10-22 10:19:59 -07:00
2011-07-12 19:42:40 +08:00
2010-10-07 14:08:55 +01:00
2010-08-14 22:26:51 +02:00
2011-03-03 16:26:55 -05:00
2010-10-29 13:14:40 -05:00
2010-05-20 21:04:21 -05:00
2011-07-13 17:32:42 +00:00
2010-06-09 11:12:36 +02:00
2011-02-23 17:54:27 +00:00
2009-12-12 13:08:14 +01:00
2008-09-06 12:10:45 +01:00
2010-10-27 21:41:39 +01:00
2011-07-12 11:08:12 +01:00
2009-12-11 06:34:09 -05:00
2010-10-01 22:35:19 -04:00
2010-11-23 22:46:12 +00:00
2011-02-26 13:36:06 +00:00
2008-12-14 13:22:51 +00:00
2011-03-20 09:32:12 +00:00
2009-07-24 12:35:01 +01:00
2011-05-26 10:23:24 +01:00
2011-07-12 11:19:29 -05:00
2011-07-07 19:20:53 +01:00
2011-02-23 16:19:21 +00:00
2010-03-13 10:48:22 +00:00
2011-02-21 19:24:14 +00:00
2011-08-12 15:40:21 +01:00
2011-07-06 20:49:45 +01:00
2011-03-16 23:35:25 +00:00
2011-07-28 01:32:04 -06:00
2011-07-13 17:32:43 +00:00
2011-06-02 11:16:22 +01:00
2011-01-11 16:23:04 +00:00
2010-10-01 22:32:18 -04:00
2011-07-22 23:08:48 +01:00
2009-06-11 21:01:52 +02:00
2011-04-16 12:52:18 +01:00
2010-10-18 22:34:25 +01:00
2011-02-11 12:29:18 +00:00
2010-12-20 15:09:16 +00:00
2011-05-26 12:14:32 +01:00
2009-10-12 13:26:31 -07:00
2008-10-01 17:24:04 +01:00
2009-12-14 23:55:32 +01:00
2011-05-23 17:19:26 +01:00
2010-06-14 21:31:00 -04:00
2009-02-12 13:21:17 +00:00
2008-09-04 09:46:11 +01:00
2008-11-27 12:37:59 +00:00
2011-07-02 09:54:01 +01:00
2009-10-25 15:59:53 +00:00
2011-06-24 09:54:39 +01:00
2011-07-06 20:49:45 +01:00
2010-08-10 13:47:39 -07:00
2010-10-01 22:32:18 -04:00
2011-04-10 21:13:36 +01:00
2008-08-07 09:55:48 +01:00
2011-05-25 08:39:14 -07:00
2011-07-19 11:44:06 +01:00
2011-02-02 21:23:29 +00:00
2011-07-22 17:19:02 +01:00
2011-03-23 19:47:18 -07:00
2010-11-04 15:44:31 +00:00
2011-03-31 11:26:23 -03:00
2009-09-18 23:30:11 +01:00
2011-09-17 12:50:57 +01:00
2009-02-19 11:26:24 +00:00
2011-03-10 15:16:29 +00:00
2010-07-09 14:41:34 +01:00
2011-07-12 11:19:29 -05:00