File tree 2 files changed +5
-0
lines changed
2 files changed +5
-0
lines changed Original file line number Diff line number Diff line change @@ -827,7 +827,9 @@ static void neo_parse_isr(struct jsm_board *brd, u32 port)
827
827
/* Parse any modem signal changes */
828
828
jsm_dbg (INTR , & ch -> ch_bd -> pci_dev ,
829
829
"MOD_STAT: sending to parse_modem_sigs\n" );
830
+ spin_lock_irqsave (& ch -> uart_port .lock , lock_flags );
830
831
neo_parse_modem (ch , readb (& ch -> ch_neo_uart -> msr ));
832
+ spin_unlock_irqrestore (& ch -> uart_port .lock , lock_flags );
831
833
}
832
834
}
833
835
Original file line number Diff line number Diff line change @@ -195,6 +195,7 @@ static void jsm_tty_break(struct uart_port *port, int break_state)
195
195
196
196
static int jsm_tty_open (struct uart_port * port )
197
197
{
198
+ unsigned long lock_flags ;
198
199
struct jsm_board * brd ;
199
200
struct jsm_channel * channel =
200
201
container_of (port , struct jsm_channel , uart_port );
@@ -248,6 +249,7 @@ static int jsm_tty_open(struct uart_port *port)
248
249
channel -> ch_cached_lsr = 0 ;
249
250
channel -> ch_stops_sent = 0 ;
250
251
252
+ spin_lock_irqsave (& port -> lock , lock_flags );
251
253
termios = & port -> state -> port .tty -> termios ;
252
254
channel -> ch_c_cflag = termios -> c_cflag ;
253
255
channel -> ch_c_iflag = termios -> c_iflag ;
@@ -267,6 +269,7 @@ static int jsm_tty_open(struct uart_port *port)
267
269
jsm_carrier (channel );
268
270
269
271
channel -> ch_open_count ++ ;
272
+ spin_unlock_irqrestore (& port -> lock , lock_flags );
270
273
271
274
jsm_dbg (OPEN , & channel -> ch_bd -> pci_dev , "finish\n" );
272
275
return 0 ;
You can’t perform that action at this time.
0 commit comments