Skip to content

Commit

Permalink
serial: bfin_sport_uart: protect changes to uart_port
Browse files Browse the repository at this point in the history
Common serial API says we need to grab the port lock before modifying
the port state to prevent inconsistent state between threads.

Signed-off-by: Sonic Zhang <sonic.zhang@analog.com>
Signed-off-by: Mike Frysinger <vapier@gentoo.org>
Signed-off-by: Greg Kroah-Hartman <gregkh@suse.de>
  • Loading branch information
Sonic Zhang authored and Greg Kroah-Hartman committed May 21, 2010
1 parent 1f7d1c8 commit 9498dc9
Showing 1 changed file with 2 additions and 2 deletions.
4 changes: 2 additions & 2 deletions drivers/serial/bfin_sport_uart.c
Original file line number Diff line number Diff line change
Expand Up @@ -498,6 +498,8 @@ static void sport_set_termios(struct uart_port *port,
/* up->parib = 1; */
}

spin_lock_irqsave(&up->port.lock, flags);

port->read_status_mask = OE;
if (termios->c_iflag & INPCK)
port->read_status_mask |= (FE | PE);
Expand Down Expand Up @@ -538,8 +540,6 @@ static void sport_set_termios(struct uart_port *port,
/* uart baud rate */
port->uartclk = uart_get_baud_rate(port, termios, old, 0, get_sclk()/16);

spin_lock_irqsave(&up->port.lock, flags);

/* Disable UART */
SPORT_PUT_TCR1(up, SPORT_GET_TCR1(up) & ~TSPEN);
SPORT_PUT_RCR1(up, SPORT_GET_RCR1(up) & ~RSPEN);
Expand Down

0 comments on commit 9498dc9

Please sign in to comment.