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