aboutsummaryrefslogtreecommitdiffstats
path: root/drivers/char/amiserial.c
diff options
context:
space:
mode:
Diffstat (limited to 'drivers/char/amiserial.c')
-rw-r--r--drivers/char/amiserial.c8
1 files changed, 2 insertions, 6 deletions
diff --git a/drivers/char/amiserial.c b/drivers/char/amiserial.c
index feb4ac802a0d..0e2b72f2b887 100644
--- a/drivers/char/amiserial.c
+++ b/drivers/char/amiserial.c
@@ -527,10 +527,8 @@ static void do_softint(unsigned long private_)
527 if (!tty) 527 if (!tty)
528 return; 528 return;
529 529
530 if (test_and_clear_bit(RS_EVENT_WRITE_WAKEUP, &info->event)) { 530 if (test_and_clear_bit(RS_EVENT_WRITE_WAKEUP, &info->event))
531 tty_wakeup(tty); 531 tty_wakeup(tty);
532 wake_up_interruptible(&tty->write_wait);
533 }
534} 532}
535 533
536/* 534/*
@@ -904,8 +902,7 @@ static int rs_write(struct tty_struct * tty, const unsigned char *buf, int count
904 if (!info->xmit.buf) 902 if (!info->xmit.buf)
905 return 0; 903 return 0;
906 904
907 local_save_flags(flags); 905 local_irq_save(flags);
908 local_irq_disable();
909 while (1) { 906 while (1) {
910 c = CIRC_SPACE_TO_END(info->xmit.head, 907 c = CIRC_SPACE_TO_END(info->xmit.head,
911 info->xmit.tail, 908 info->xmit.tail,
@@ -968,7 +965,6 @@ static void rs_flush_buffer(struct tty_struct *tty)
968 local_irq_save(flags); 965 local_irq_save(flags);
969 info->xmit.head = info->xmit.tail = 0; 966 info->xmit.head = info->xmit.tail = 0;
970 local_irq_restore(flags); 967 local_irq_restore(flags);
971 wake_up_interruptible(&tty->write_wait);
972 tty_wakeup(tty); 968 tty_wakeup(tty);
973} 969}
974 970