diff options
author | patacongo <patacongo@42af7a65-404d-4744-a932-0658087f49c3> | 2013-03-22 21:59:05 +0000 |
---|---|---|
committer | patacongo <patacongo@42af7a65-404d-4744-a932-0658087f49c3> | 2013-03-22 21:59:05 +0000 |
commit | f4a74d79f3111b79f408eb4070e125cad78e9082 (patch) | |
tree | ad245c3f71a14d7f0e84e734ec201f08c9ddd87d /nuttx/arch/arm/src/armv7-m/up_svcall.c | |
parent | f3427f57661698850483d9638892a7c25456078c (diff) | |
download | px4-nuttx-f4a74d79f3111b79f408eb4070e125cad78e9082.tar.gz px4-nuttx-f4a74d79f3111b79f408eb4070e125cad78e9082.tar.bz2 px4-nuttx-f4a74d79f3111b79f408eb4070e125cad78e9082.zip |
A few fixes related to dispatched signals in kernel mode (there are still issues)
git-svn-id: svn://svn.code.sf.net/p/nuttx/code/trunk@5777 42af7a65-404d-4744-a932-0658087f49c3
Diffstat (limited to 'nuttx/arch/arm/src/armv7-m/up_svcall.c')
-rw-r--r-- | nuttx/arch/arm/src/armv7-m/up_svcall.c | 7 |
1 files changed, 4 insertions, 3 deletions
diff --git a/nuttx/arch/arm/src/armv7-m/up_svcall.c b/nuttx/arch/arm/src/armv7-m/up_svcall.c index 9f3a4ffaa..40abb41c8 100644 --- a/nuttx/arch/arm/src/armv7-m/up_svcall.c +++ b/nuttx/arch/arm/src/armv7-m/up_svcall.c @@ -403,8 +403,8 @@ int up_svcall(int irq, FAR void *context) regs[REG_R1] = regs[REG_R2]; /* signal */ regs[REG_R2] = regs[REG_R3]; /* info */ - /* The last parameter, arg, is trickier. The arg parameter will - * reside at an offset of 4 from the stack pointer. + /* The last parameter, ucontext, is trickier. The ucontext + * parameter will reside at an offset of 4 from the stack pointer. */ regs[REG_R3] = *(uint32_t*)(regs[REG_SP+4]); @@ -432,6 +432,7 @@ int up_svcall(int irq, FAR void *context) regs[REG_PC] = rtcb->xcp.sigreturn; regs[REG_EXC_RETURN] = EXC_RETURN_PRIVTHR; + rtcb->xcp.sigreturn = 0; } break; #endif @@ -481,7 +482,7 @@ int up_svcall(int irq, FAR void *context) #if defined(CONFIG_DEBUG_SYSCALL) || defined(CONFIG_DEBUG_SVCALL) # ifndef CONFIG_DEBUG_SVCALL if (cmd > SYS_switch_context) -# elif +# else if (regs != current_regs) # endif { |