Ard Biesheuvel
7b9896c352
ARM: percpu: add SMP_ON_UP support
...
Permit the use of the TPIDRPRW system register for carrying the per-CPU
offset in generic SMP configurations that also target non-SMP capable
ARMv6 cores. This uses the SMP_ON_UP code patching framework to turn all
TPIDRPRW accesses into reads/writes of entry #0 in the __per_cpu_offset
array.
While at it, switch over some existing direct TPIDRPRW accesses in asm
code to invocations of a new helper that is patched in the same way when
necessary.
Note that CPU_V6+SMP without SMP_ON_UP results in a kernel that does not
boot on v6 CPUs without SMP extensions, so add this dependency to
Kconfig as well.
Acked-by: Linus Walleij <linus.walleij@linaro.org>
Acked-by: Nicolas Pitre <nico@fluxnic.net>
Signed-off-by: Ard Biesheuvel <ardb@kernel.org>
Tested-by: Marc Zyngier <maz@kernel.org>
Tested-by: Vladimir Murzin <vladimir.murzin@arm.com> # ARMv7M
2021-12-06 12:49:17 +01:00
..
2017-11-02 11:10:55 +01:00
2017-11-02 11:10:55 +01:00
2017-11-02 11:10:55 +01:00
2017-11-02 11:10:55 +01:00
2017-11-02 11:10:55 +01:00
2021-06-13 18:16:43 +01:00
2017-11-02 11:10:55 +01:00
2017-11-02 11:10:55 +01:00
2017-11-02 11:10:55 +01:00
2020-08-23 17:36:59 -05:00
2020-05-06 11:12:12 -07:00
2019-06-19 17:09:55 +02:00
2015-08-18 14:00:30 +01:00
2019-06-05 17:37:06 +02:00
2020-09-15 14:35:53 +01:00
2019-06-19 17:09:55 +02:00
2015-11-26 22:12:26 +00:00
2019-05-30 11:26:39 -07:00
2019-05-30 11:26:37 -07:00
2019-06-19 17:09:55 +02:00
2019-06-19 17:09:55 +02:00
2019-06-19 17:09:55 +02:00
2019-06-19 17:09:55 +02:00
2021-03-09 10:25:18 +00:00
2019-12-08 14:37:32 +01:00
2019-06-05 17:37:06 +02:00
2021-10-30 11:24:36 +01:00
2019-06-19 17:09:55 +02:00
2019-06-19 17:09:55 +02:00
2021-04-30 11:20:37 -07:00
2019-06-19 17:09:55 +02:00
2019-06-19 17:09:55 +02:00
2021-04-30 11:20:37 -07:00
2019-06-19 17:09:55 +02:00
2021-04-30 11:20:37 -07:00
2021-08-18 16:24:10 +02:00
2021-08-09 17:13:05 +02:00
2017-11-02 11:10:55 +01:00
2021-04-18 19:15:12 +01:00
2017-11-02 11:10:55 +01:00
2020-06-09 09:39:13 -07:00
2021-10-19 10:35:43 +01:00
2021-10-19 10:35:43 +01:00
2021-09-03 09:58:13 -07:00
2017-11-02 11:10:55 +01:00
2017-11-02 11:10:55 +01:00
2020-08-07 11:33:26 -07:00
2020-06-09 09:39:13 -07:00
2021-11-06 13:30:41 -07:00
2019-10-31 16:58:54 +00:00
2021-10-19 10:30:56 +01:00
2021-11-10 11:29:30 -08:00
2021-12-06 12:49:17 +01:00
2019-06-19 17:09:55 +02:00
2017-11-02 11:10:55 +01:00
2020-12-22 13:34:27 -08:00
2020-06-09 09:39:13 -07:00
2020-12-11 12:28:24 -08:00
2021-11-12 12:49:36 +00:00
2021-09-03 09:58:13 -07:00
2017-11-02 11:10:55 +01:00
2017-11-02 11:10:55 +01:00
2017-11-02 11:10:55 +01:00
2020-06-09 09:39:13 -07:00
2020-10-27 12:11:10 +00:00
2017-11-02 11:10:55 +01:00
2021-03-25 10:25:20 +00:00
2021-03-25 10:25:20 +00:00
2020-06-09 09:39:13 -07:00
2020-06-09 09:39:13 -07:00
2020-06-09 09:39:13 -07:00
2020-06-09 09:39:13 -07:00
2020-06-09 09:39:13 -07:00
2020-06-09 09:39:13 -07:00
2020-06-09 09:39:13 -07:00
2020-06-09 09:39:13 -07:00
2020-06-09 09:39:13 -07:00
2020-06-09 09:39:13 -07:00
2020-06-09 09:39:13 -07:00
2020-06-09 09:39:13 -07:00
2020-06-09 09:39:13 -07:00
2020-06-09 09:39:13 -07:00
2020-06-09 09:39:13 -07:00
2020-06-09 09:39:13 -07:00
2021-11-02 09:04:22 +00:00
2020-06-09 09:39:13 -07:00
2020-06-09 09:39:13 -07:00
2020-06-09 09:39:13 -07:00
2019-06-19 17:09:55 +02:00
2020-06-09 09:39:13 -07:00
2019-06-19 17:09:55 +02:00
2019-06-05 17:37:06 +02:00
2020-08-23 17:36:59 -05:00
2021-03-09 10:25:18 +00:00
2019-11-15 22:21:19 +00:00
2020-06-09 09:39:13 -07:00
2020-06-09 09:39:13 -07:00
2021-04-18 19:15:13 +01:00
2021-08-10 12:17:25 +01:00
2019-05-30 11:29:22 -07:00
2019-06-19 17:09:55 +02:00
2019-06-19 17:09:55 +02:00
2019-06-19 17:09:55 +02:00
2019-06-19 17:09:55 +02:00
2021-06-29 10:53:52 -07:00
2021-06-29 10:53:52 -07:00