Arm32: MSR to SPSR needs qualification
authorJan Beulich <jbeulich@suse.com>
Fri, 11 Jun 2021 13:04:24 +0000 (15:04 +0200)
committerStefano Stabellini <sstabellini@kernel.org>
Fri, 11 Jun 2021 22:05:24 +0000 (15:05 -0700)
The Arm ARM's description of MSR (ARM DDI 0406C.d section B9.3.12)
doesn't even allow for plain "SPSR" here, and while gas accepts this, it
takes it to mean SPSR_cf. Yet surely all of SPSR wants updating on this
path, not just the lowest and highest 8 bits.

Fixes: dfcffb128be4 ("xen/arm32: SPSR_hyp/SPSR")
Signed-off-by: Jan Beulich <jbeulich@suse.com>
Reviewed-by: Stefano Stabellini <sstabellini@kernel.org>
xen/arch/arm/arm32/entry.S

index 4e421109db03378de485657f922f527d34a9ca9d..38826142adf0d0a3a37df31f1827a07d6d9c992b 100644 (file)
@@ -395,7 +395,7 @@ return_to_hypervisor:
         ldr r11, [sp, #UREGS_pc]
         msr ELR_hyp, r11
         ldr r11, [sp, #UREGS_cpsr]
-        msr SPSR, r11
+        msr SPSR_cxsf, r11
 #ifdef CONFIG_ARM32_HARDEN_BRANCH_PREDICTOR
         /*
          * Hardening branch predictor may require to setup a different