diff options
Diffstat (limited to 'net/irda/ircomm')
-rw-r--r-- | net/irda/ircomm/ircomm_tty.c | 9 |
1 files changed, 3 insertions, 6 deletions
diff --git a/net/irda/ircomm/ircomm_tty.c b/net/irda/ircomm/ircomm_tty.c index 5d1e61168eb7..6f20b4206e08 100644 --- a/net/irda/ircomm/ircomm_tty.c +++ b/net/irda/ircomm/ircomm_tty.c | |||
@@ -567,10 +567,8 @@ static void ircomm_tty_close(struct tty_struct *tty, struct file *filp) | |||
567 | self->tty = NULL; | 567 | self->tty = NULL; |
568 | 568 | ||
569 | if (self->blocked_open) { | 569 | if (self->blocked_open) { |
570 | if (self->close_delay) { | 570 | if (self->close_delay) |
571 | current->state = TASK_INTERRUPTIBLE; | 571 | schedule_timeout_interruptible(self->close_delay); |
572 | schedule_timeout(self->close_delay); | ||
573 | } | ||
574 | wake_up_interruptible(&self->open_wait); | 572 | wake_up_interruptible(&self->open_wait); |
575 | } | 573 | } |
576 | 574 | ||
@@ -863,8 +861,7 @@ static void ircomm_tty_wait_until_sent(struct tty_struct *tty, int timeout) | |||
863 | spin_lock_irqsave(&self->spinlock, flags); | 861 | spin_lock_irqsave(&self->spinlock, flags); |
864 | while (self->tx_skb && self->tx_skb->len) { | 862 | while (self->tx_skb && self->tx_skb->len) { |
865 | spin_unlock_irqrestore(&self->spinlock, flags); | 863 | spin_unlock_irqrestore(&self->spinlock, flags); |
866 | current->state = TASK_INTERRUPTIBLE; | 864 | schedule_timeout_interruptible(poll_time); |
867 | schedule_timeout(poll_time); | ||
868 | spin_lock_irqsave(&self->spinlock, flags); | 865 | spin_lock_irqsave(&self->spinlock, flags); |
869 | if (signal_pending(current)) | 866 | if (signal_pending(current)) |
870 | break; | 867 | break; |