From mboxrd@z Thu Jan 1 00:00:00 1970 From: Dave.Martin@arm.com (Dave Martin) Date: Mon, 5 Nov 2018 13:32:52 +0000 Subject: [PATCH] ARM: proc-v7: fix Thumb annotation of cpu_v7_hvc_switch_mm In-Reply-To: <20180619162919.25190-1-ard.biesheuvel@linaro.org> References: <20180619162919.25190-1-ard.biesheuvel@linaro.org> Message-ID: <20181105133212.GA3505@e103592.cambridge.arm.com> To: linux-arm-kernel@lists.infradead.org List-Id: linux-arm-kernel.lists.infradead.org On Tue, Jun 19, 2018 at 06:29:19PM +0200, Ard Biesheuvel wrote: > Due to what appears to be a copy/paste error, the opening ENTRY() > of cpu_v7_hvc_switch_mm() lacks a matching ENDPROC(), and instead, > the one for cpu_v7_smc_switch_mm() is duplicated. > > Given that it is ENDPROC() that emits the Thumb annotation, the > cpu_v7_hvc_switch_mm() routine will be called in ARM mode on a > Thumb2 kernel, resulting in the following splat: > > Internal error: Oops - undefined instruction: 0 [#1] SMP THUMB2 > Modules linked in: > CPU: 0 PID: 1 Comm: swapper/0 Not tainted 4.18.0-rc1-00030-g4d28ad89189d-dirty #488 > Hardware name: QEMU KVM Virtual Machine, BIOS 0.0.0 02/06/2015 > PC is at cpu_v7_hvc_switch_mm+0x12/0x18 > LR is at flush_old_exec+0x31b/0x570 > pc : [] lr : [] psr: 00000013 > sp : ee899e50 ip : 00000000 fp : 00000001 > r10: eda28f34 r9 : eda31800 r8 : c12470e0 > r7 : eda1fc00 r6 : eda53000 r5 : 00000000 r4 : ee88c000 > r3 : c0316eec r2 : 00000001 r1 : eda53000 r0 : 6da6c000 > Flags: nzcv IRQs on FIQs on Mode SVC_32 ISA ARM Segment none > > Note the 'ISA ARM' in the last line. > > Fix this by using the correct name in ENDPROC(). > > Signed-off-by: Ard Biesheuvel > --- > arch/arm/mm/proc-v7.S | 2 +- > 1 file changed, 1 insertion(+), 1 deletion(-) > > diff --git a/arch/arm/mm/proc-v7.S b/arch/arm/mm/proc-v7.S > index 6fe52819e014..339eb17c9808 100644 > --- a/arch/arm/mm/proc-v7.S > +++ b/arch/arm/mm/proc-v7.S > @@ -112,7 +112,7 @@ ENTRY(cpu_v7_hvc_switch_mm) > hvc #0 > ldmfd sp!, {r0 - r3} > b cpu_v7_switch_mm > -ENDPROC(cpu_v7_smc_switch_mm) > +ENDPROC(cpu_v7_hvc_switch_mm) FWIW, Reviewed-by: Dave Martin (I'll have a think about whether we can flag these mismatches up at build time...) Cheers ---Dave