Nathan Lynch
7280fdb80b
powerpc/rtas: avoid scheduling in rtas_os_term()
...
[ Upstream commit 6c606e57eecc37d6b36d732b1ff7e55b7dc32dd4 ]
It's unsafe to use rtas_busy_delay() to handle a busy status from
the ibm,os-term RTAS function in rtas_os_term():
Kernel panic - not syncing: Attempted to kill init! exitcode=0x0000000b
BUG: sleeping function called from invalid context at arch/powerpc/kernel/rtas.c:618
in_atomic(): 1, irqs_disabled(): 1, non_block: 0, pid: 1, name: swapper/0
preempt_count: 2, expected: 0
CPU: 7 PID: 1 Comm: swapper/0 Tainted: G D 6.0.0-rc5-02182-gf8553a572277-dirty #9
Call Trace:
[c000000007b8f000] [c000000001337110] dump_stack_lvl+0xb4/0x110 (unreliable)
[c000000007b8f040] [c0000000002440e4] __might_resched+0x394/0x3c0
[c000000007b8f0e0] [c00000000004f680] rtas_busy_delay+0x120/0x1b0
[c000000007b8f100] [c000000000052d04] rtas_os_term+0xb8/0xf4
[c000000007b8f180] [c0000000001150fc] pseries_panic+0x50/0x68
[c000000007b8f1f0] [c000000000036354] ppc_panic_platform_handler+0x34/0x50
[c000000007b8f210] [c0000000002303c4] notifier_call_chain+0xd4/0x1c0
[c000000007b8f2b0] [c0000000002306cc] atomic_notifier_call_chain+0xac/0x1c0
[c000000007b8f2f0] [c0000000001d62b8] panic+0x228/0x4d0
[c000000007b8f390] [c0000000001e573c] do_exit+0x140c/0x1420
[c000000007b8f480] [c0000000001e586c] make_task_dead+0xdc/0x200
Use rtas_busy_delay_time() instead, which signals without side effects
whether to attempt the ibm,os-term RTAS call again.
Signed-off-by: Nathan Lynch <nathanl@linux.ibm.com>
Reviewed-by: Nicholas Piggin <npiggin@gmail.com>
Reviewed-by: Andrew Donnellan <ajd@linux.ibm.com>
Signed-off-by: Michael Ellerman <mpe@ellerman.id.au>
Link: https://lore.kernel.org/r/20221118150751.469393-5-nathanl@linux.ibm.com
Signed-off-by: Sasha Levin <sashal@kernel.org>
2023-01-12 11:58:46 +01:00
..
2022-06-14 18:36:27 +02:00
2021-09-08 15:32:35 -07:00
2022-07-12 16:35:02 +02:00
2021-04-30 12:22:28 -07:00
2021-07-29 23:13:12 +10:00
2021-04-21 22:52:33 +10:00
2021-09-03 22:54:12 +10:00
2022-01-27 11:04:57 +01:00
2021-08-04 10:53:39 +10:00
2020-06-02 20:59:11 +10:00
2020-12-05 21:49:18 +11:00
2020-12-04 01:01:29 +11:00
2021-01-29 10:05:51 +05:30
2021-06-17 00:09:00 +10:00
2021-08-13 22:04:26 +10:00
2021-02-09 00:10:49 +11:00
2021-09-30 17:10:17 +10:00
2021-01-29 10:05:51 +05:30
2021-08-13 22:04:26 +10:00
2020-08-07 18:48:15 -07:00
2020-10-07 22:34:47 +11:00
2020-07-26 23:34:20 +10:00
2021-08-13 22:04:26 +10:00
2022-07-12 16:35:02 +02:00
2022-06-09 10:22:42 +02:00
2021-06-17 00:09:00 +10:00
2022-07-12 16:35:02 +02:00
2022-07-12 16:35:02 +02:00
2022-06-09 10:23:07 +02:00
2021-11-18 19:16:51 +01:00
2021-08-18 23:49:55 +10:00
2021-08-25 13:35:47 +10:00
2021-11-25 09:48:44 +01:00
2022-07-12 16:35:02 +02:00
2022-01-27 11:05:01 +01:00
2021-08-25 13:35:47 +10:00
2021-07-26 20:38:51 +10:00
2022-08-25 11:40:43 +02:00
2022-07-12 16:35:02 +02:00
2021-09-03 11:22:50 -07:00
2021-04-03 21:21:41 +11:00
2021-08-13 22:04:26 +10:00
2022-06-14 18:36:27 +02:00
2021-10-20 21:37:58 +11:00
2021-03-29 13:22:10 +11:00
2022-06-14 18:36:27 +02:00
2020-05-07 17:25:54 +10:00
2022-07-12 16:35:02 +02:00
2022-01-27 11:03:22 +01:00
2021-05-28 22:54:27 +10:00
2020-12-04 01:01:09 +11:00
2022-08-17 14:24:12 +02:00
2021-10-07 19:54:55 +11:00
2021-04-30 11:20:40 -07:00
2021-06-17 00:09:00 +10:00
2021-08-13 22:04:26 +10:00
2021-06-25 00:06:55 +10:00
2021-06-25 00:06:55 +10:00
2022-10-26 12:35:23 +02:00
2022-05-01 17:22:28 +02:00
2022-06-14 18:36:27 +02:00
2021-05-12 11:07:39 +10:00
2022-08-17 14:23:05 +02:00
2021-06-21 21:13:19 +10:00
2021-09-13 22:34:12 +10:00
2021-08-25 13:35:47 +10:00
2021-08-25 13:35:47 +10:00
2021-08-25 13:35:47 +10:00
2021-06-16 00:16:48 +10:00
2021-12-22 09:32:49 +01:00
2022-01-27 11:04:08 +01:00
2021-03-08 11:43:27 +01:00
2020-07-26 23:34:19 +10:00
2022-07-12 16:35:02 +02:00
2021-06-25 14:46:51 +10:00
2022-10-15 07:59:02 +02:00
2021-04-30 11:20:40 -07:00
2022-10-26 12:35:22 +02:00
2022-08-25 11:40:23 +02:00
2020-05-18 21:58:44 +10:00
2022-06-29 09:03:30 +02:00
2022-07-07 17:53:24 +02:00
2022-01-27 11:04:06 +01:00
2022-08-25 11:40:45 +02:00
2021-08-25 13:35:47 +10:00
2022-05-09 09:14:44 +02:00
2020-06-09 09:39:13 -07:00
2021-04-14 23:04:16 +10:00
2021-06-25 14:47:20 +10:00
2023-01-12 11:58:46 +01:00
2021-08-10 23:14:56 +10:00
2020-07-16 14:49:53 +10:00
2021-10-07 19:52:58 +11:00
2022-04-13 20:59:08 +02:00
2021-06-17 00:09:00 +10:00
2021-08-13 22:04:26 +10:00
2021-08-13 22:04:26 +10:00
2021-02-09 00:10:50 +11:00
2022-05-01 17:22:28 +02:00
2022-05-01 17:22:28 +02:00
2021-09-22 10:24:01 -04:00
2021-11-25 09:48:44 +01:00
2022-01-27 11:05:02 +01:00
2021-08-03 22:33:37 +10:00
2022-06-14 18:36:27 +02:00
2022-06-14 18:36:27 +02:00
2022-10-26 12:35:22 +02:00
2022-10-26 12:35:22 +02:00
2021-08-07 08:53:59 +10:00
2022-09-08 12:28:03 +02:00
2021-08-20 17:00:53 +10:00
2021-09-03 22:54:12 +10:00
2022-07-12 16:35:02 +02:00
2021-10-07 19:54:55 +11:00
2021-06-21 21:16:31 +10:00
2021-08-19 09:02:55 +09:00
2021-06-25 00:06:55 +10:00
2021-01-30 22:23:42 +11:00
2021-01-30 22:23:42 +11:00
2021-04-14 23:04:44 +10:00
2020-05-19 00:10:37 +10:00
2021-08-18 23:49:55 +10:00
2022-05-09 09:14:44 +02:00
2022-01-27 11:04:57 +01:00