]> bbs.cooldavid.org Git - net-next-2.6.git/commitdiff
cdc-acm: remove dead code
authorArnd Bergmann <arnd@arndb.de>
Tue, 1 Jun 2010 20:53:04 +0000 (22:53 +0200)
committerGreg Kroah-Hartman <gregkh@suse.de>
Tue, 10 Aug 2010 20:47:43 +0000 (13:47 -0700)
The wait_event_interruptible_timeout in acm_port_down is
never reached. Remove it to avoid possible deadlocks
with the big tty mutex if someone were to start using
the blocking version of acm_port_down.

Signed-off-by: Arnd Bergmann <arnd@arndb.de>
Signed-off-by: Greg Kroah-Hartman <gregkh@suse.de>
drivers/usb/class/cdc-acm.c

index 89d260d6b03194bf95f39f62fe305a6f0268e0f0..1833b3a71515bb65f9be08bafb2bf329996dc71d 100644 (file)
@@ -636,19 +636,13 @@ static void acm_tty_unregister(struct acm *acm)
 
 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);
@@ -664,7 +658,7 @@ static void acm_tty_hangup(struct tty_struct *tty)
 {
        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)
@@ -685,7 +679,7 @@ 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);
 }