summaryrefslogtreecommitdiff
path: root/nuttx/arch/arm/src/armv7-m/up_svcall.c
diff options
context:
space:
mode:
authorpatacongo <patacongo@42af7a65-404d-4744-a932-0658087f49c3>2013-03-22 21:59:05 +0000
committerpatacongo <patacongo@42af7a65-404d-4744-a932-0658087f49c3>2013-03-22 21:59:05 +0000
commitf4a74d79f3111b79f408eb4070e125cad78e9082 (patch)
treead245c3f71a14d7f0e84e734ec201f08c9ddd87d /nuttx/arch/arm/src/armv7-m/up_svcall.c
parentf3427f57661698850483d9638892a7c25456078c (diff)
downloadpx4-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.c7
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
{