Peter Zijlstra
dfd01f0260
sched/wait: Fix the signal handling fix
...
Jan Stancek reported that I wrecked things for him by fixing things for
Vladimir :/
His report was due to an UNINTERRUPTIBLE wait getting -EINTR, which
should not be possible, however my previous patch made this possible by
unconditionally checking signal_pending().
We cannot use current->state as was done previously, because the
instruction after the store to that variable it can be changed. We must
instead pass the initial state along and use that.
Fixes: 68985633bccb ("sched/wait: Fix signal handling in bit wait helpers")
Reported-by: Jan Stancek <jstancek@redhat.com>
Reported-by: Chris Mason <clm@fb.com>
Tested-by: Jan Stancek <jstancek@redhat.com>
Tested-by: Vladimir Murzin <vladimir.murzin@arm.com>
Tested-by: Chris Mason <clm@fb.com>
Reviewed-by: Paul Turner <pjt@google.com>
Cc: Ingo Molnar <mingo@kernel.org>
Cc: tglx@linutronix.de
Cc: Oleg Nesterov <oleg@redhat.com>
Cc: hpa@zytor.com
Signed-off-by: Peter Zijlstra (Intel) <peterz@infradead.org>
Signed-off-by: Linus Torvalds <torvalds@linux-foundation.org>
2015-12-13 14:30:59 -08:00
..
2015-12-08 14:51:16 -05:00
2015-06-30 19:44:57 -07:00
2015-09-10 13:29:01 -07:00
2015-05-11 10:50:17 -04:00
2015-06-23 18:02:01 -04:00
2015-07-04 19:36:06 -07:00
2015-04-26 17:22:07 -07:00
2015-11-27 15:45:45 -08:00
2015-11-16 20:38:43 -05:00
2015-11-13 09:24:40 -08:00
2015-12-13 14:30:59 -08:00
2015-09-10 13:29:01 -07:00
2015-11-20 16:17:32 -08:00
2015-11-11 02:04:44 -05:00
2015-06-30 19:44:58 -07:00
2015-12-01 15:45:05 -05:00
2015-11-07 13:05:44 -08:00
2015-05-06 10:57:37 -07:00
2015-06-25 17:00:42 -07:00
2015-12-12 10:15:34 -08:00
2015-02-22 11:38:41 -05:00
2015-11-16 09:43:54 -08:00
2015-12-07 10:25:00 -08:00
2015-11-13 18:02:30 -08:00
2015-11-20 16:17:32 -08:00
2015-08-07 13:59:24 +02:00
2015-11-11 02:11:02 -05:00
2015-12-11 10:56:41 -08:00
2015-11-13 18:02:30 -08:00
2015-09-10 13:29:01 -07:00
2015-11-13 20:34:32 -05:00
2015-09-04 16:54:41 -07:00
2015-11-09 15:11:24 -08:00
2015-11-20 16:17:32 -08:00
2015-04-15 15:06:57 -04:00
2015-12-07 10:25:00 -08:00
2015-11-13 20:34:32 -05:00
2015-11-09 15:11:24 -08:00
2015-08-18 15:49:15 -07:00
2015-11-11 20:11:28 -08:00
2015-11-06 17:50:42 -08:00
2015-07-04 19:36:06 -07:00
2015-11-20 16:17:32 -08:00
2015-12-13 14:30:59 -08:00
2015-08-13 10:22:06 -04:00
2015-11-10 09:29:45 -05:00
2015-11-11 09:45:24 -08:00
2015-11-05 19:34:48 -08:00
2015-11-06 17:50:42 -08:00
2015-12-12 10:15:34 -08:00
2015-05-28 18:25:19 -07:00
2015-12-06 12:31:07 -05:00
2015-11-07 14:32:45 -08:00
2015-11-02 13:41:52 -08:00
2015-06-23 18:02:00 -04:00
2015-09-05 20:34:28 -07:00
2015-10-16 11:42:28 -07:00
2015-11-13 18:02:30 -08:00
2015-04-11 22:29:40 -04:00
2015-11-13 20:34:33 -05:00
2015-11-13 21:53:18 -08:00
2015-11-23 21:11:08 -05:00
2015-11-04 22:13:45 -05:00
2015-11-13 18:02:30 -08:00
2015-08-20 14:58:35 +02:00
2015-09-09 10:43:12 -07:00
2015-11-13 18:02:30 -08:00
2015-09-04 16:54:41 -07:00
2015-02-20 04:03:58 -05:00
2014-11-19 13:01:20 -05:00
2015-11-10 12:07:22 -08:00
2015-11-11 09:45:24 -08:00
2014-12-13 12:42:51 -08:00
2015-04-26 17:22:07 -07:00
2014-12-13 12:42:51 -08:00
2015-12-04 11:02:17 -07:00
2015-11-11 02:19:33 -05:00
2015-08-05 13:49:35 -07:00
2015-10-23 23:26:43 +02:00
2014-10-31 17:48:54 -04:00
2015-11-06 17:50:42 -08:00
2015-11-16 23:54:45 -08:00
2015-08-21 02:34:37 -04:00
2015-12-08 15:02:42 -05:00
2015-08-17 18:39:46 -04:00
2015-02-17 14:34:52 -08:00
2015-02-13 21:21:40 -08:00
2015-07-10 10:39:25 -05:00
2015-01-08 15:10:52 -08:00
2015-06-02 10:29:07 -07:00
2015-08-07 04:39:40 +03:00
2015-11-05 23:05:32 -08:00
2015-04-09 11:39:55 -05:00
2015-11-11 02:18:27 -05:00
2015-11-11 02:18:27 -05:00
2015-08-17 23:38:10 -04:00
2015-02-10 14:30:30 -08:00
2015-11-16 23:54:45 -08:00
2015-04-14 16:49:05 -07:00
2015-08-12 15:28:45 -05:00
2015-10-22 14:57:42 -04:00
2015-10-15 10:33:21 -04:00
2015-06-30 19:44:56 -07:00
2015-11-06 17:50:42 -08:00
2015-12-06 12:33:02 -05:00
2015-09-01 16:13:25 -07:00
2015-09-11 15:21:34 -07:00
2015-07-10 10:39:25 -05:00
2015-11-11 02:18:26 -05:00
2015-04-02 20:34:20 -05:00
2015-07-22 20:33:27 -05:00
2015-11-13 20:34:32 -05:00
2015-06-30 19:44:56 -07:00
2015-04-11 22:29:46 -04:00
2014-10-31 17:48:54 -04:00
2015-05-19 08:32:00 +02:00
2015-11-06 17:50:42 -08:00
2015-08-07 04:39:40 +03:00
2015-11-23 21:15:30 -05:00
2014-08-26 09:35:56 +02:00
2015-11-09 15:11:24 -08:00
2015-08-21 02:31:20 -04:00
2015-11-06 17:50:42 -08:00
2014-11-05 14:13:23 -05:00
2015-09-22 15:09:53 -07:00
2015-11-13 20:34:33 -05:00