Nicholas Piggin
6029755eed
powerpc: Fix deadlock with multiple calls to smp_send_stop
...
smp_send_stop can lock up the IPI path for any subsequent calls,
because the receiving CPUs spin in their handler function. This
started becoming a problem with the addition of an smp_send_stop
call in the reboot path, because panics can reboot after doing
their own smp_send_stop.
The NMI IPI variant was fixed with ac61c11566 ("powerpc: Fix
smp_send_stop NMI IPI handling"), which leaves the smp_call_function
variant.
This is fixed by having smp_send_stop only ever do the
smp_call_function once. This is a bit less robust than the NMI IPI
fix, because any other call to smp_call_function after smp_send_stop
could deadlock, but that has always been the case, and it was not
been a problem before.
Fixes: f2748bdfe1573 ("powerpc/powernv: Always stop secondaries before reboot/shutdown")
Reported-by: Abdul Haleem <abdhalee@linux.vnet.ibm.com>
Signed-off-by: Nicholas Piggin <npiggin@gmail.com>
Signed-off-by: Michael Ellerman <mpe@ellerman.id.au>
2018-04-27 16:35:57 +10:00
..
2017-11-16 12:47:46 -08:00
2017-11-02 11:10:55 +01:00
2017-12-04 15:01:09 +11:00
2017-10-25 12:42:35 +02:00
2018-03-31 09:09:36 +11:00
2017-11-02 11:10:55 +01:00
2017-11-02 11:10:55 +01:00
2017-08-23 22:27:04 +10:00
2017-11-02 11:10:55 +01:00
2017-11-02 11:10:55 +01:00
2018-03-24 00:38:51 +11:00
2018-03-24 00:38:51 +11:00
2018-01-21 23:21:14 +11:00
2018-04-01 00:47:50 +11:00
2016-12-24 11:46:01 -08:00
2018-03-30 23:34:23 +11:00
2017-04-13 23:34:33 +10:00
2018-01-10 16:41:14 +01:00
2018-01-15 09:35:39 +01:00
2018-01-15 09:35:26 +01:00
2018-04-13 23:51:44 +10:00
2018-03-27 23:44:58 +11:00
2017-09-21 14:56:00 +10:00
2018-04-01 00:47:45 +11:00
2018-03-27 23:44:58 +11:00
2018-04-19 13:02:38 +10:00
2018-01-27 20:02:52 +11:00
2018-03-27 23:45:19 +11:00
2018-01-16 23:47:12 +11:00
2018-04-01 00:47:49 +11:00
2016-08-07 23:50:09 -04:00
2014-06-10 18:54:22 -07:00
2018-02-08 23:56:10 +11:00
2018-04-01 00:47:49 +11:00
2017-12-05 23:21:46 +11:00
2016-10-14 14:26:58 -07:00
2017-11-02 11:10:55 +01:00
2018-01-16 23:47:15 +11:00
2017-11-13 22:12:48 +11:00
2016-08-07 23:50:09 -04:00
2016-08-07 23:50:09 -04:00
2018-03-30 23:34:23 +11:00
2017-11-02 11:10:55 +01:00
2016-08-07 23:50:09 -04:00
2018-03-27 23:52:44 +11:00
2018-01-19 22:37:01 +11:00
2018-04-19 16:22:20 +10:00
2015-06-02 21:37:19 -05:00
2018-01-19 22:37:01 +11:00
2016-12-20 09:48:44 -08:00
2017-08-23 22:27:04 +10:00
2018-04-05 14:59:26 +10:00
2017-09-01 16:42:54 +10:00
2018-03-23 08:41:40 +11:00
2017-08-23 22:27:04 +10:00
2015-08-03 11:34:12 +02:00
2018-04-13 17:10:28 -07:00
2017-08-10 23:32:12 +10:00
2017-11-12 23:51:41 +11:00
2018-03-31 00:10:33 +11:00
2017-08-31 14:26:00 +10:00
2017-08-15 21:04:32 +10:00
2017-11-02 11:10:55 +01:00
2018-03-30 23:34:24 +11:00
2018-04-13 17:10:27 -07:00
2016-05-11 21:54:04 +10:00
2018-04-07 12:08:19 -07:00
2018-04-24 13:54:51 +10:00
2018-02-02 10:01:04 -08:00
2017-06-02 19:20:43 +10:00
2018-03-20 16:47:53 +11:00
2016-08-07 23:50:09 -04:00
2016-03-07 14:53:53 +11:00
2018-02-02 10:01:04 -08:00
2016-12-24 11:46:01 -08:00
2017-12-11 13:03:35 +11:00
2015-06-02 11:47:45 +10:00
2018-03-20 16:47:53 +11:00
2017-08-23 22:27:04 +10:00
2018-01-19 22:37:01 +11:00
2017-11-12 23:51:41 +11:00
2018-03-31 09:09:36 +11:00
2018-01-11 17:21:55 -06:00
2017-11-06 16:48:14 +11:00
2017-12-11 13:03:35 +11:00
2018-02-06 09:59:40 -08:00
2018-02-28 16:18:53 -06:00
2017-12-18 23:05:52 -06:00
2018-01-22 05:48:33 +11:00
2018-04-03 21:50:08 +10:00
2018-04-04 16:59:50 +10:00
2018-04-04 16:59:50 +10:00
2017-11-02 11:10:55 +01:00
2018-03-31 09:09:36 +11:00
2016-12-24 11:46:01 -08:00
2018-03-27 23:52:44 +11:00
2017-08-31 14:26:47 +10:00
2018-01-22 05:48:33 +11:00
2017-08-31 14:26:40 +10:00
2018-01-22 05:48:33 +11:00
2017-11-02 11:10:55 +01:00
2017-10-18 15:15:07 +02:00
2018-02-11 14:34:03 -08:00
2018-04-03 21:50:08 +10:00
2018-03-13 15:50:42 +11:00
2018-04-17 19:29:04 +10:00
2018-04-01 00:47:38 +11:00
2018-03-30 23:34:26 +11:00
2018-03-13 15:50:33 +11:00
2018-01-22 05:48:36 +11:00
2018-01-31 13:02:18 -08:00
2018-03-13 15:50:39 +11:00
2017-11-02 11:10:55 +01:00
2018-04-27 16:35:57 +10:00
2017-03-28 14:43:59 +11:00
2014-10-09 22:26:04 -04:00
2017-11-02 11:10:55 +01:00
2017-03-02 08:42:30 +01:00
2017-08-10 22:29:41 +10:00
2017-11-02 11:10:55 +01:00
2017-03-20 19:02:49 +11:00
2018-04-02 20:16:12 +02:00
2018-04-03 14:08:58 -07:00
2018-03-31 09:09:36 +11:00
2015-11-26 22:11:17 +11:00
2015-11-26 22:11:17 +11:00
2017-08-31 14:26:47 +10:00
2017-11-21 15:57:07 -08:00
2018-04-03 21:50:07 +10:00
2017-11-16 12:47:46 -08:00
2018-04-10 11:23:23 +10:00
2014-11-12 13:47:20 +11:00
2015-04-07 17:15:13 +10:00
2017-08-24 16:19:21 +10:00
2018-03-24 00:36:45 +11:00
2017-11-02 11:10:55 +01:00
2017-11-02 11:10:55 +01:00
2018-02-02 10:01:04 -08:00
2018-01-28 17:08:29 +11:00