diff options
author | Dmitry Torokhov <dtor@insightbb.com> | 2007-05-01 00:24:54 -0400 |
---|---|---|
committer | Dmitry Torokhov <dtor@insightbb.com> | 2007-05-01 00:24:54 -0400 |
commit | bc95f3669f5e6f63cf0b84fe4922c3c6dd4aa775 (patch) | |
tree | 427fcf2a7287c16d4b5aa6cbf494d59579a6a8b1 /drivers/serial/8250.c | |
parent | 3d29cdff999c37b3876082278a8134a0642a02cd (diff) | |
parent | dc87c3985e9b442c60994308a96f887579addc39 (diff) |
Merge master.kernel.org:/pub/scm/linux/kernel/git/torvalds/linux-2.6
Conflicts:
drivers/usb/input/Makefile
drivers/usb/input/gtco.c
Diffstat (limited to 'drivers/serial/8250.c')
-rw-r--r-- | drivers/serial/8250.c | 10 |
1 files changed, 6 insertions, 4 deletions
diff --git a/drivers/serial/8250.c b/drivers/serial/8250.c index 98ec86185328..90621c3312bc 100644 --- a/drivers/serial/8250.c +++ b/drivers/serial/8250.c | |||
@@ -1196,7 +1196,7 @@ static void serial8250_enable_ms(struct uart_port *port) | |||
1196 | } | 1196 | } |
1197 | 1197 | ||
1198 | static void | 1198 | static void |
1199 | receive_chars(struct uart_8250_port *up, int *status) | 1199 | receive_chars(struct uart_8250_port *up, unsigned int *status) |
1200 | { | 1200 | { |
1201 | struct tty_struct *tty = up->port.info->tty; | 1201 | struct tty_struct *tty = up->port.info->tty; |
1202 | unsigned char ch, lsr = *status; | 1202 | unsigned char ch, lsr = *status; |
@@ -1310,7 +1310,8 @@ static unsigned int check_modem_status(struct uart_8250_port *up) | |||
1310 | { | 1310 | { |
1311 | unsigned int status = serial_in(up, UART_MSR); | 1311 | unsigned int status = serial_in(up, UART_MSR); |
1312 | 1312 | ||
1313 | if (status & UART_MSR_ANY_DELTA && up->ier & UART_IER_MSI) { | 1313 | if (status & UART_MSR_ANY_DELTA && up->ier & UART_IER_MSI && |
1314 | up->port.info != NULL) { | ||
1314 | if (status & UART_MSR_TERI) | 1315 | if (status & UART_MSR_TERI) |
1315 | up->port.icount.rng++; | 1316 | up->port.icount.rng++; |
1316 | if (status & UART_MSR_DDSR) | 1317 | if (status & UART_MSR_DDSR) |
@@ -1333,8 +1334,9 @@ static inline void | |||
1333 | serial8250_handle_port(struct uart_8250_port *up) | 1334 | serial8250_handle_port(struct uart_8250_port *up) |
1334 | { | 1335 | { |
1335 | unsigned int status; | 1336 | unsigned int status; |
1337 | unsigned long flags; | ||
1336 | 1338 | ||
1337 | spin_lock(&up->port.lock); | 1339 | spin_lock_irqsave(&up->port.lock, flags); |
1338 | 1340 | ||
1339 | status = serial_inp(up, UART_LSR); | 1341 | status = serial_inp(up, UART_LSR); |
1340 | 1342 | ||
@@ -1346,7 +1348,7 @@ serial8250_handle_port(struct uart_8250_port *up) | |||
1346 | if (status & UART_LSR_THRE) | 1348 | if (status & UART_LSR_THRE) |
1347 | transmit_chars(up); | 1349 | transmit_chars(up); |
1348 | 1350 | ||
1349 | spin_unlock(&up->port.lock); | 1351 | spin_unlock_irqrestore(&up->port.lock, flags); |
1350 | } | 1352 | } |
1351 | 1353 | ||
1352 | /* | 1354 | /* |