From 067d0f4e200b210e791f30e089a9bf7b884f6be3 Mon Sep 17 00:00:00 2001 From: guoshichao Date: Thu, 21 Nov 2024 14:42:25 +0800 Subject: [PATCH] armv6-m: fix the incorrect stub-function entry address of svc call the stub-function entry address is stored in r4, we should branch to the stub-function with blx r4, not r5 Signed-off-by: guoshichao --- arch/arm/src/armv6-m/arm_svcall.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/arch/arm/src/armv6-m/arm_svcall.c b/arch/arm/src/armv6-m/arm_svcall.c index 411138b3e1..1f0e1c4eb6 100644 --- a/arch/arm/src/armv6-m/arm_svcall.c +++ b/arch/arm/src/armv6-m/arm_svcall.c @@ -92,7 +92,7 @@ static void dispatch_syscall(void) " ldr r4, =g_stublookup\n" /* R4=The base of the stub lookup table */ " lsl r0, r0, #2\n" /* R0=Offset of the stub for this syscall */ " ldr r4, [r4, r0]\n" /* R4=Address of the stub for this syscall */ - " blx r5\n" /* Call the stub (modifies lr) */ + " blx r4\n" /* Call the stub (modifies lr) */ " mov lr, r5\n" /* Restore lr */ " add sp, sp, #12\n" /* Destroy the stack frame */ " pop {r4, r5}\n" /* Recover R4 and R5 */