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.
This commit is contained in:
Daniel Hellstrom
2014-06-13 15:14:54 +02:00
parent 0b4ec4d74e
commit 9f99232e4b

View File

@@ -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 rtems_termios_tty *tty = leon3_console_get_tty(arg);
struct apbuart_priv *uart = leon3_console_get_uart(minor); struct apbuart_priv *uart = leon3_console_get_uart(minor);
rtems_interrupt_level level; rtems_interrupt_lock_context lock_ctx;
/* Turn off RX interrupts */ /* 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); 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 ****/ /**** Flush device ****/
while (uart->sending) { while (uart->sending) {