]> git.ipfire.org Git - thirdparty/kernel/linux.git/commitdiff
KVM: arm64: Don't populate TPIDR_EL2 in finalise_el2()
authorWill Deacon <will@kernel.org>
Mon, 18 May 2026 15:31:26 +0000 (16:31 +0100)
committerMarc Zyngier <maz@kernel.org>
Wed, 27 May 2026 14:30:39 +0000 (15:30 +0100)
Currently, it is not necessary for __finalise_el2() to configure
TPIDR_EL2:

* The hyp stub code does not consume the value of TPIDR_EL2.

* On the boot cpu, TPIDR_EL1 is used for the percpu offset until the
  ARM64_HAS_VIRT_HOST_EXTN cpucap is detected and boot alternatives
  are patched. Before boot alternatives are patched,
  cpu_copy_el2regs() will copy TPIDR_EL1 into TPIDR_EL2. It is not
  necessary for __finalise_el2() to initialise TPIDR_EL2 before this.

* Secondary CPUs are brought up after boot alternatives have been
  patched, and __secondary_switched() will initialize TPIDR_EL2 in
  'init_cpu_task', after finalise_el2() calls __finalise_el2()

* KVM hyp code which may consume TPIDR_EL2 is brought up after all
  secondaries have been booted, once TPIDR_El2 has been configured on
  all CPUs.

Remove the redundant initialisation from __finalise_el2().

Cc: Oliver Upton <oupton@kernel.org>
Cc: Marc Zyngier <maz@kernel.org>
Cc: Catalin Marinas <catalin.marinas@arm.com>
Reviewed-by: Mark Rutland <mark.rutland@arm.com>
Signed-off-by: Will Deacon <will@kernel.org>
Reviewed-by: Marc Zyngier <maz@kernel.org>
Link: https://patch.msgid.link/20260518153127.6078-1-will@kernel.org
Signed-off-by: Marc Zyngier <maz@kernel.org>
arch/arm64/kernel/hyp-stub.S

index 634ddc9042444f263fe2bc774238ffbac10e50ef..37c6976e44a4c4e61b60fc8a77a5601c7ff2bf4a 100644 (file)
@@ -104,11 +104,9 @@ SYM_CODE_START_LOCAL(__finalise_el2)
        mov_q   x0, HCR_HOST_VHE_FLAGS
        msr_hcr_el2 x0
 
-       // Use the EL1 allocated stack, per-cpu offset
+       // Use the EL1 allocated stack
        mrs     x0, sp_el1
        mov     sp, x0
-       mrs     x0, tpidr_el1
-       msr     tpidr_el2, x0
 
        // FP configuration, vectors
        mrs_s   x0, SYS_CPACR_EL12