summaryrefslogtreecommitdiffstats
path: root/cpukit/score/cpu/arm/cpu.c
diff options
context:
space:
mode:
authorSebastian Huber <sebastian.huber@embedded-brains.de>2013-08-05 17:27:35 +0200
committerSebastian Huber <sebastian.huber@embedded-brains.de>2013-08-05 17:31:45 +0200
commit71336bf445831c2269e11bbce543ec5815dd1c34 (patch)
tree05bc65ac98fccfcd0a8c934a9f9cfb4f22196050 /cpukit/score/cpu/arm/cpu.c
parentsptests/sp37: Add ISR level test for new threads (diff)
downloadrtems-71336bf445831c2269e11bbce543ec5815dd1c34.tar.bz2
arm: Fix ISR level context initialization
Diffstat (limited to 'cpukit/score/cpu/arm/cpu.c')
-rw-r--r--cpukit/score/cpu/arm/cpu.c3
1 files changed, 2 insertions, 1 deletions
diff --git a/cpukit/score/cpu/arm/cpu.c b/cpukit/score/cpu/arm/cpu.c
index 70021365ad..1c1fe5d3de 100644
--- a/cpukit/score/cpu/arm/cpu.c
+++ b/cpukit/score/cpu/arm/cpu.c
@@ -76,7 +76,8 @@ void _CPU_Context_Initialize(
{
the_context->register_sp = (uint32_t) stack_area_begin + stack_area_size;
the_context->register_lr = (uint32_t) entry_point;
- the_context->register_cpsr = new_level | arm_cpu_mode;
+ the_context->register_cpsr = ( ( new_level != 0 ) ? ARM_PSR_I : 0 )
+ | arm_cpu_mode;
}
/* Preprocessor magic for stringification of x */