mirror of https://gitee.com/openkylin/linux.git
cdc-acm: remove dead code
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>
This commit is contained in:
parent
83ceb67d7d
commit
4e60867167
|
@ -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);
|
||||
}
|
||||
|
|
Loading…
Reference in New Issue