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 @@ -815,7 +815,9 @@ static void neo_parse_isr(struct jsm_board *brd, u32 port)
815
815
/* Parse any modem signal changes */
816
816
jsm_dbg (INTR , & ch -> ch_bd -> pci_dev ,
817
817
"MOD_STAT: sending to parse_modem_sigs\n" );
818
+ spin_lock_irqsave (& ch -> uart_port .lock , lock_flags );
818
819
neo_parse_modem (ch , readb (& ch -> ch_neo_uart -> msr ));
820
+ spin_unlock_irqrestore (& ch -> uart_port .lock , lock_flags );
819
821
}
820
822
}
821
823
Original file line number Diff line number Diff line change @@ -187,6 +187,7 @@ static void jsm_tty_break(struct uart_port *port, int break_state)
187
187
188
188
static int jsm_tty_open (struct uart_port * port )
189
189
{
190
+ unsigned long lock_flags ;
190
191
struct jsm_board * brd ;
191
192
struct jsm_channel * channel =
192
193
container_of (port , struct jsm_channel , uart_port );
@@ -240,6 +241,7 @@ static int jsm_tty_open(struct uart_port *port)
240
241
channel -> ch_cached_lsr = 0 ;
241
242
channel -> ch_stops_sent = 0 ;
242
243
244
+ spin_lock_irqsave (& port -> lock , lock_flags );
243
245
termios = & port -> state -> port .tty -> termios ;
244
246
channel -> ch_c_cflag = termios -> c_cflag ;
245
247
channel -> ch_c_iflag = termios -> c_iflag ;
@@ -259,6 +261,7 @@ static int jsm_tty_open(struct uart_port *port)
259
261
jsm_carrier (channel );
260
262
261
263
channel -> ch_open_count ++ ;
264
+ spin_unlock_irqrestore (& port -> lock , lock_flags );
262
265
263
266
jsm_dbg (OPEN , & channel -> ch_bd -> pci_dev , "finish\n" );
264
267
return 0 ;
You can’t perform that action at this time.
0 commit comments