Christophe Leroy
fc7da433fa
powerpc/smp: Fix OOPS in topology_init()
...
commit 8241461536f21bbe51308a6916d1c9fb2e6b75a7 upstream.
Running an SMP kernel on an UP platform not prepared for it,
I encountered the following OOPS:
BUG: Kernel NULL pointer dereference on read at 0x00000034
Faulting instruction address: 0xc0a04110
Oops: Kernel access of bad area, sig: 11 [#1 ]
BE PAGE_SIZE=4K SMP NR_CPUS=2 CMPCPRO
Modules linked in:
CPU: 0 PID: 1 Comm: swapper/0 Not tainted 5.13.0-pmac-00001-g230fedfaad21 #5234
NIP: c0a04110 LR: c0a040d8 CTR: c0a04084
REGS: e100dda0 TRAP: 0300 Not tainted (5.13.0-pmac-00001-g230fedfaad21)
MSR: 00009032 <EE,ME,IR,DR,RI> CR: 84000284 XER: 00000000
DAR: 00000034 DSISR: 20000000
GPR00: c0006bd4 e100de60 c1033320 00000000 00000000 c0942274 00000000 00000000
GPR08: 00000000 00000000 00000001 00000063 00000007 00000000 c0006f30 00000000
GPR16: 00000000 00000000 00000000 00000000 00000000 00000000 00000000 00000005
GPR24: c0c67d74 c0c67f1c c0c60000 c0c67d70 c0c0c558 1efdf000 c0c00020 00000000
NIP [c0a04110] topology_init+0x8c/0x138
LR [c0a040d8] topology_init+0x54/0x138
Call Trace:
[e100de60] [80808080] 0x80808080 (unreliable)
[e100de90] [c0006bd4] do_one_initcall+0x48/0x1bc
[e100def0] [c0a0150c] kernel_init_freeable+0x1c8/0x278
[e100df20] [c0006f44] kernel_init+0x14/0x10c
[e100df30] [c00190fc] ret_from_kernel_thread+0x14/0x1c
Instruction dump:
7c692e70 7d290194 7c035040 7c7f1b78 5529103a 546706fe 5468103a 39400001
7c641b78 40800054 80c690b4 7fb9402e <81060034> 7fbeea14 2c080000 7fa3eb78
---[ end trace b246ffbc6bbbb6fb ]---
Fix it by checking smp_ops before using it, as already done in
several other places in the arch/powerpc/kernel/smp.c
Fixes: 39f87561454d ("powerpc/smp: Move ppc_md.cpu_die() to smp_ops.cpu_offline_self()")
Cc: stable@vger.kernel.org
Signed-off-by: Christophe Leroy <christophe.leroy@csgroup.eu>
Signed-off-by: Michael Ellerman <mpe@ellerman.id.au>
Link: https://lore.kernel.org/r/75287841cbb8740edd44880fe60be66d489160d9.1628097995.git.christophe.leroy@csgroup.eu
Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
2021-08-18 08:59:17 +02:00
..
2020-09-15 22:13:20 +10:00
2020-10-18 09:27:10 -07:00
2020-07-23 17:41:36 +10:00
2020-10-22 13:13:57 -07:00
2021-02-13 13:55:02 +01:00
2020-03-25 11:50:48 +01:00
2020-07-29 21:09:37 +10:00
2021-03-17 17:06:24 +01:00
2020-10-25 14:51:49 -07:00
2020-07-30 22:53:48 +10:00
2019-06-15 16:52:06 +10:00
2020-06-02 20:59:11 +10:00
2019-05-30 11:26:32 -07:00
2019-11-17 01:56:31 -06:00
2019-06-05 17:37:06 +02:00
2020-07-26 23:34:23 +10:00
2019-05-30 11:26:32 -07:00
2020-10-20 23:33:51 +11:00
2020-05-19 00:10:39 +10:00
2020-07-26 23:34:19 +10:00
2020-07-29 21:02:09 +10:00
2020-09-25 06:20:47 +02:00
2019-05-30 11:26:32 -07:00
2020-10-06 23:22:22 +11:00
2019-11-13 19:27:40 +11:00
2020-11-02 12:54:20 +11:00
2020-08-07 18:48:15 -07:00
2019-09-14 00:01:14 +10:00
2020-10-07 22:34:47 +11:00
2020-07-26 23:34:20 +10:00
2021-05-11 14:47:35 +02:00
2021-03-04 11:38:40 +01:00
2021-01-27 11:55:12 +01:00
2019-05-30 11:26:32 -07:00
2020-05-19 00:10:37 +10:00
2020-10-06 23:22:23 +11:00
2021-03-17 17:06:34 +01:00
2021-05-14 09:50:30 +02:00
2020-07-29 21:02:10 +10:00
2020-10-08 21:17:13 +11:00
2019-11-13 19:27:40 +11:00
2021-03-04 11:38:05 +01:00
2021-05-19 10:12:54 +02:00
2020-11-05 23:34:16 +11:00
2020-06-09 09:39:13 -07:00
2020-12-30 11:53:32 +01:00
2021-03-17 17:06:13 +01:00
2020-10-08 21:17:12 +11:00
2020-06-09 09:39:13 -07:00
2020-09-15 22:13:19 +10:00
2020-09-15 22:13:19 +10:00
2020-06-02 20:59:11 +10:00
2019-05-30 11:26:32 -07:00
2020-01-16 14:59:37 +10:00
2020-06-02 20:59:11 +10:00
2020-11-24 16:47:35 +01:00
2020-05-07 17:25:54 +10:00
2020-06-09 09:39:13 -07:00
2019-05-30 11:26:32 -07:00
2020-08-14 19:56:57 -07:00
2021-05-19 10:12:58 +02:00
2021-03-04 11:38:06 +01:00
2020-06-02 10:59:10 -07:00
2020-05-19 00:10:37 +10:00
2020-06-18 12:10:37 -07:00
2019-05-30 11:26:35 -07:00
2021-08-18 08:59:14 +02:00
2019-09-14 00:04:40 +10:00
2019-09-14 00:04:40 +10:00
2020-10-08 21:17:13 +11:00
2019-12-18 15:04:42 +01:00
2020-12-30 11:53:15 +01:00
2021-07-14 16:56:48 +02:00
2020-10-16 20:13:55 +11:00
2020-09-02 11:00:21 +10:00
2020-10-08 21:17:12 +11:00
2020-06-02 20:59:11 +10:00
2020-05-11 23:15:14 +10:00
2020-06-17 10:57:41 -07:00
2020-07-27 00:01:30 +10:00
2019-05-30 11:26:32 -07:00
2019-08-30 09:40:15 +10:00
2020-06-05 12:39:30 -07:00
2020-07-26 23:34:19 +10:00
2020-05-19 00:10:39 +10:00
2020-05-26 23:36:57 +10:00
2020-12-30 11:53:15 +01:00
2019-08-22 23:11:48 +10:00
2020-06-05 12:39:30 -07:00
2020-07-26 23:34:21 +10:00
2020-01-06 16:25:29 +11:00
2021-03-17 17:06:23 +01:00
2020-05-18 21:58:44 +10:00
2019-05-30 11:26:32 -07:00
2019-05-30 11:26:32 -07:00
2020-04-04 21:40:57 +11:00
2020-02-04 03:05:26 +00:00
2021-07-14 16:56:49 +02:00
2019-10-29 15:12:17 +11:00
2021-03-04 11:38:35 +01:00
2021-05-14 09:50:30 +02:00
2019-05-30 11:26:32 -07:00
2019-05-30 11:26:32 -07:00
2020-02-04 03:05:26 +00:00
2020-06-09 09:39:13 -07:00
2020-02-04 03:05:26 +00:00
2020-12-30 11:54:15 +01:00
2020-07-16 13:12:38 +10:00
2020-07-16 14:49:53 +10:00
2020-10-08 12:50:52 +11:00
2019-11-13 00:33:22 +11:00
2019-11-13 00:33:22 +11:00
2021-05-19 10:12:54 +02:00
2021-05-26 12:06:50 +02:00
2020-12-30 11:53:01 +01:00
2020-12-30 11:53:15 +01:00
2020-07-15 12:04:40 +10:00
2020-07-15 12:04:40 +10:00
2020-10-23 10:06:38 -07:00
2020-04-01 13:42:13 +11:00
2021-07-14 16:56:49 +02:00
2021-07-14 16:55:46 +02:00
2019-06-14 10:48:56 +02:00
2020-06-02 20:59:11 +10:00
2019-06-19 17:11:22 +02:00
2019-06-19 17:11:22 +02:00
2019-05-30 11:26:32 -07:00
2019-05-30 11:26:32 -07:00
2020-11-19 23:47:20 +11:00
2019-11-15 14:38:29 +01:00
2021-08-18 08:59:17 +02:00
2019-05-30 11:26:32 -07:00
2020-04-01 13:42:13 +11:00
2020-09-15 22:13:30 +10:00
2021-03-04 11:38:01 +01:00
2020-10-06 23:22:25 +11:00
2021-03-17 17:06:23 +01:00
2019-08-30 09:40:15 +10:00
2019-05-30 11:26:32 -07:00
2019-10-11 19:33:25 +11:00
2020-05-26 23:36:51 +10:00
2021-02-13 13:55:02 +01:00
2020-05-19 00:10:37 +10:00
2020-07-16 13:00:24 +10:00
2021-01-27 11:55:12 +01:00
2019-04-30 11:31:02 +10:00