ARM: kernel: use relative references for UP/SMP alternatives
authorArd Biesheuvel <ardb@kernel.org>
Mon, 14 Sep 2020 08:48:20 +0000 (11:48 +0300)
committerArd Biesheuvel <ardb@kernel.org>
Wed, 28 Oct 2020 16:05:39 +0000 (17:05 +0100)
commit450abd38fe6c6313ce9bdd9dce81c1dd604f6fb0
tree40d8d29bfe5389007a3128447f890ceda61afc37
parent91580f0dbf24c6d616091526a900213bc7aa48fe
ARM: kernel: use relative references for UP/SMP alternatives

Currently, the .alt.smp.init section contains the virtual addresses
of the patch sites. Since patching may occur both before and after
switching into virtual mode, this requires some manual handling of
the address when applying the UP alternative.

Let's simplify this by using relative offsets in the table entries:
this allows us to simply add each entry's address to its contents,
regardless of whether we are running in virtual mode or not.

Reviewed-by: Nicolas Pitre <nico@fluxnic.net>
Signed-off-by: Ard Biesheuvel <ardb@kernel.org>
arch/arm/include/asm/assembler.h
arch/arm/include/asm/processor.h
arch/arm/kernel/head.S