summaryrefslogtreecommitdiff
path: root/nuttx/arch/avr/src/avr32/up_sigdeliver.c
diff options
context:
space:
mode:
authorpatacongo <patacongo@42af7a65-404d-4744-a932-0658087f49c3>2010-11-05 02:18:32 +0000
committerpatacongo <patacongo@42af7a65-404d-4744-a932-0658087f49c3>2010-11-05 02:18:32 +0000
commit553a6de16c1865d6c4c75f4df2b885e10555f4d9 (patch)
tree907030b0e3707e1fb64b37c4f1904d430d5eb203 /nuttx/arch/avr/src/avr32/up_sigdeliver.c
parent019a4a61f0173e09a532d47c0979367cae365d0c (diff)
downloadpx4-nuttx-553a6de16c1865d6c4c75f4df2b885e10555f4d9.tar.gz
px4-nuttx-553a6de16c1865d6c4c75f4df2b885e10555f4d9.tar.bz2
px4-nuttx-553a6de16c1865d6c4c75f4df2b885e10555f4d9.zip
Fix excepion handling reg save
git-svn-id: svn://svn.code.sf.net/p/nuttx/code/trunk@3074 42af7a65-404d-4744-a932-0658087f49c3
Diffstat (limited to 'nuttx/arch/avr/src/avr32/up_sigdeliver.c')
-rw-r--r--nuttx/arch/avr/src/avr32/up_sigdeliver.c8
1 files changed, 7 insertions, 1 deletions
diff --git a/nuttx/arch/avr/src/avr32/up_sigdeliver.c b/nuttx/arch/avr/src/avr32/up_sigdeliver.c
index b000f118a..c88669482 100644
--- a/nuttx/arch/avr/src/avr32/up_sigdeliver.c
+++ b/nuttx/arch/avr/src/avr32/up_sigdeliver.c
@@ -82,7 +82,11 @@
void up_sigdeliver(void)
{
_TCB *rtcb = (_TCB*)g_readytorun.head;
+#if 0
uint32_t regs[XCPTCONTEXT_REGS+3]; /* Why +3? See below */
+#else
+ uint32_t regs[XCPTCONTEXT_REGS];
+#endif
sig_deliver_t sigdeliver;
/* Save the errno. This must be preserved throughout the signal handling
@@ -140,7 +144,9 @@ void up_sigdeliver(void)
* dangerous because there is the very real possibility that the new
* stack pointer might overlap with the register save area and hat stack
* usage in up_fullcontextrestore might corrupt the register save data
- * before the state is restored.
+ * before the state is restored. At present, there does not appear to
+ * be any stack overlap problems. If there were, then adding 3 words
+ * to the size of register save structure size will protect its contents.
*/
up_ledoff(LED_SIGNAL);