diff options
author | Joel Sherrill <joel.sherrill@OARcorp.com> | 2007-09-12 15:15:32 +0000 |
---|---|---|
committer | Joel Sherrill <joel.sherrill@OARcorp.com> | 2007-09-12 15:15:32 +0000 |
commit | f3343c6e79cf46b37d46cbb332ba1cb494b68ca4 (patch) | |
tree | 3d9cef71e6ce6c73993e3d1c8b419d000789f9d6 /c/src/lib/libbsp/arm/shared | |
parent | 2007-09-11 Joel Sherrill <joel.sherrill@OARcorp.com> (diff) | |
download | rtems-f3343c6e79cf46b37d46cbb332ba1cb494b68ca4.tar.bz2 |
2007-09-12 Joel Sherrill <joel.sherrill@OARcorp.com>
PR 1257/bsps
* csb336/network/lan91c11x.c, csb337/startup/bspstart.c,
edb7312/irq/irq.c, gba/irq/irq.c, gba/irq/irq_init.c,
gp32/startup/bspstart.c, rtl22xx/startup/bspstart.c,
shared/abort/abort.c, shared/abort/simple_abort.c,
shared/irq/irq_init.c: Code outside of cpukit should use the public
API for rtems_interrupt_disable/rtems_interrupt_enable. By bypassing
the public API and directly accessing _CPU_ISR_Disable and
_CPU_ISR_Enable, they were bypassing the compiler memory barrier
directive which could lead to problems. This patch also changes the
type of the variable passed into these routines and addresses minor
style issues.
Diffstat (limited to 'c/src/lib/libbsp/arm/shared')
-rw-r--r-- | c/src/lib/libbsp/arm/shared/abort/abort.c | 10 | ||||
-rw-r--r-- | c/src/lib/libbsp/arm/shared/abort/simple_abort.c | 8 | ||||
-rw-r--r-- | c/src/lib/libbsp/arm/shared/irq/irq_init.c | 2 |
3 files changed, 9 insertions, 11 deletions
diff --git a/c/src/lib/libbsp/arm/shared/abort/abort.c b/c/src/lib/libbsp/arm/shared/abort/abort.c index a7dca28094..3d78a5cd94 100644 --- a/c/src/lib/libbsp/arm/shared/abort/abort.c +++ b/c/src/lib/libbsp/arm/shared/abort/abort.c @@ -104,11 +104,9 @@ void do_data_abort(uint32_t insn, uint32_t spsr, Context_Control *ctx) { /* Clarify, which type is correct, CPU_Exception_frame or Context_Control */ - - uint8_t decode; - uint8_t insn_type; - - uint32_t tmp; + uint8_t decode; + uint8_t insn_type; + rtems_interrupt_level level; g_data_abort_insn_list[g_data_abort_cnt & 0x3ff] = ctx->register_lr - 8; g_data_abort_cnt++; @@ -152,7 +150,7 @@ void do_data_abort(uint32_t insn, uint32_t spsr, _print_full_context(spsr); /* disable interrupts, wait forever */ - _CPU_ISR_Disable(tmp); + rtems_interrupt_disable(level); while(1) { continue; } diff --git a/c/src/lib/libbsp/arm/shared/abort/simple_abort.c b/c/src/lib/libbsp/arm/shared/abort/simple_abort.c index 99aefa8ee9..8fb6a3eec2 100644 --- a/c/src/lib/libbsp/arm/shared/abort/simple_abort.c +++ b/c/src/lib/libbsp/arm/shared/abort/simple_abort.c @@ -109,9 +109,9 @@ void do_data_abort( { /* Clarify, which type is correct, CPU_Exception_frame or Context_Control */ - uint8_t decode; - uint8_t insn_type; - uint32_t tmp; + uint8_t decode; + uint8_t insn_type; + rtems_interrupt_level level; decode = ((insn >> 20) & 0xff); @@ -152,7 +152,7 @@ void do_data_abort( _print_full_context(spsr); /* disable interrupts, wait forever */ - _CPU_ISR_Disable(tmp); + rtems_interrupt_disable(level); while(1) { continue; } diff --git a/c/src/lib/libbsp/arm/shared/irq/irq_init.c b/c/src/lib/libbsp/arm/shared/irq/irq_init.c index 1f84574474..f194ae9b4a 100644 --- a/c/src/lib/libbsp/arm/shared/irq/irq_init.c +++ b/c/src/lib/libbsp/arm/shared/irq/irq_init.c @@ -31,7 +31,7 @@ void rtems_irq_mngt_init() { rtems_interrupt_level level; - _CPU_ISR_Disable(level); + rtems_interrupt_disable(level); /* First, connect the ISR_Handler for IRQ and FIQ interrupts */ _CPU_ISR_install_vector(ARM_EXCEPTION_IRQ, _ISR_Handler, NULL); |