return;
  
        BT_DBG("dev %p tty %p", dev, tty);
 -
 -      if (test_bit(TTY_DO_WRITE_WAKEUP, &tty->flags) && tty->ldisc.write_wakeup)
 -              (tty->ldisc.write_wakeup)(tty);
 -
 -      wake_up_interruptible(&tty->write_wait);
 -#ifdef SERIAL_HAVE_POLL_WAIT
 -      wake_up_interruptible(&tty->poll_wait);
 -#endif
 +      tty_wakeup(tty);
  }
  
+ static void rfcomm_tty_copy_pending(struct rfcomm_dev *dev)
+ {
+       struct tty_struct *tty = dev->tty;
+       struct sk_buff *skb;
+       int inserted = 0;
+ 
+       if (!tty)
+               return;
+ 
+       BT_DBG("dev %p tty %p", dev, tty);
+ 
+       rfcomm_dlc_lock(dev->dlc);
+ 
+       while ((skb = skb_dequeue(&dev->pending))) {
+               inserted += tty_insert_flip_string(tty, skb->data, skb->len);
+               kfree_skb(skb);
+       }
+ 
+       rfcomm_dlc_unlock(dev->dlc);
+ 
+       if (inserted > 0)
+               tty_flip_buffer_push(tty);
+ }
+ 
  static int rfcomm_tty_open(struct tty_struct *tty, struct file *filp)
  {
        DECLARE_WAITQUEUE(wait, current);