summaryrefslogtreecommitdiffstats
path: root/c
diff options
context:
space:
mode:
authorDaniel Hellstrom <daniel@gaisler.com>2014-06-13 15:14:54 +0200
committerDaniel Hellstrom <daniel@gaisler.com>2014-06-30 15:45:02 +0200
commit9f99232e4b76bc8a02d0d01f7fd2c7725a4662d5 (patch)
treefdf985709db0b8c8999ee38f2cfd33d03385f5fa /c
parentsmptests/smpfatal08: Support RTEMS_PARAVIRT (diff)
downloadrtems-9f99232e4b76bc8a02d0d01f7fd2c7725a4662d5.tar.bz2
LEON3: fix console close handling
On SMP rtems_interrupt_lock_context must be used. Most tests fail with a NULL pointer exception when exiting, except on NGMP where main memory is at 0x00000000.
Diffstat (limited to 'c')
-rw-r--r--c/src/lib/libbsp/sparc/leon3/console/console.c6
1 files changed, 3 insertions, 3 deletions
diff --git a/c/src/lib/libbsp/sparc/leon3/console/console.c b/c/src/lib/libbsp/sparc/leon3/console/console.c
index cdfbf2a599..8742436622 100644
--- a/c/src/lib/libbsp/sparc/leon3/console/console.c
+++ b/c/src/lib/libbsp/sparc/leon3/console/console.c
@@ -355,12 +355,12 @@ static int leon3_console_last_close(int major, int minor, void *arg)
{
struct rtems_termios_tty *tty = leon3_console_get_tty(arg);
struct apbuart_priv *uart = leon3_console_get_uart(minor);
- rtems_interrupt_level level;
+ rtems_interrupt_lock_context lock_ctx;
/* Turn off RX interrupts */
- rtems_termios_interrupt_lock_acquire(tty, level);
+ rtems_termios_interrupt_lock_acquire(tty, &lock_ctx);
uart->regs->ctrl &= ~(LEON_REG_UART_CTRL_RI);
- rtems_termios_interrupt_lock_release(tty, level);
+ rtems_termios_interrupt_lock_release(tty, &lock_ctx);
/**** Flush device ****/
while (uart->sending) {