summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorDaniel Hellstrom <daniel@gaisler.com>2014-06-13 15:14:54 +0200
committerDaniel Cederman <cederman@gaisler.com>2014-06-27 11:03:25 +0200
commit696c25b37655c06430f5bc60d1f228ef1fdac856 (patch)
tree530d2b270709c3beac076915975e59cd48793221
parentbe91e2c0bc1da18bf111eecf3aaf622480ec6e70 (diff)
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.
-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) {