You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@nuttx.apache.org by pk...@apache.org on 2022/02/16 12:06:37 UTC

[incubator-nuttx] branch master updated: arch: armv7-a: Fix arm_syscall for SYS_pthread_start

This is an automated email from the ASF dual-hosted git repository.

pkarashchenko pushed a commit to branch master
in repository https://gitbox.apache.org/repos/asf/incubator-nuttx.git


The following commit(s) were added to refs/heads/master by this push:
     new b60b612  arch: armv7-a: Fix arm_syscall for SYS_pthread_start
b60b612 is described below

commit b60b6120dedf8bf4f01512bbb670dfc1c50af556
Author: Masayuki Ishikawa <ma...@gmail.com>
AuthorDate: Wed Feb 16 16:26:36 2022 +0900

    arch: armv7-a: Fix arm_syscall for SYS_pthread_start
    
    Summary:
    - I noticed that pthread always crashes when started
      if CONFIG_BUILD_KERNEL=y
    - This commit fixes this issue
    
    Impact:
    - None
    
    Testing:
    - Tested with sabre-6quad:netknsh (not merged yet)
    
    Signed-off-by: Masayuki Ishikawa <Ma...@jp.sony.com>
---
 arch/arm/src/armv7-a/arm_syscall.c | 6 +++---
 1 file changed, 3 insertions(+), 3 deletions(-)

diff --git a/arch/arm/src/armv7-a/arm_syscall.c b/arch/arm/src/armv7-a/arm_syscall.c
index 5e61aa4..9d2ddf4 100644
--- a/arch/arm/src/armv7-a/arm_syscall.c
+++ b/arch/arm/src/armv7-a/arm_syscall.c
@@ -302,9 +302,9 @@ uint32_t *arm_syscall(uint32_t *regs)
            *   CSPR = user mode
            */
 
-          regs[REG_PC]   = regs[REG_R0];
-          regs[REG_R0]   = regs[REG_R1];
-          regs[REG_R1]   = regs[REG_R2];
+          regs[REG_PC]   = regs[REG_R1];
+          regs[REG_R0]   = regs[REG_R2];
+          regs[REG_R1]   = regs[REG_R3];
 
           cpsr           = regs[REG_CPSR] & ~PSR_MODE_MASK;
           regs[REG_CPSR] = cpsr | PSR_MODE_USR;