static int acm_tty_chars_in_buffer(struct tty_struct *tty);
 
-static void acm_port_down(struct acm *acm, int drain)
+static void acm_port_down(struct acm *acm)
 {
        int i, nr = acm->rx_buflimit;
        mutex_lock(&open_mutex);
        if (acm->dev) {
                usb_autopm_get_interface(acm->control);
                acm_set_control(acm, acm->ctrlout = 0);
-               /* try letting the last writes drain naturally */
-               if (drain) {
-                       wait_event_interruptible_timeout(acm->drain_wait,
-                               (ACM_NW == acm_wb_is_avail(acm)) || !acm->dev,
-                                       ACM_CLOSE_TIMEOUT * HZ);
-               }
                usb_kill_urb(acm->ctrlurb);
                for (i = 0; i < ACM_NW; i++)
                        usb_kill_urb(acm->wb[i].urb);
 {
        struct acm *acm = tty->driver_data;
        tty_port_hangup(&acm->port);
-       acm_port_down(acm, 0);
+       acm_port_down(acm);
 }
 
 static void acm_tty_close(struct tty_struct *tty, struct file *filp)
                mutex_unlock(&open_mutex);
                return;
        }
-       acm_port_down(acm, 0);
+       acm_port_down(acm);
        tty_port_close_end(&acm->port, tty);
        tty_port_tty_set(&acm->port, NULL);
 }