diff options
Diffstat (limited to 'drivers/usb/class/cdc-acm.c')
-rw-r--r-- | drivers/usb/class/cdc-acm.c | 8 |
1 files changed, 7 insertions, 1 deletions
diff --git a/drivers/usb/class/cdc-acm.c b/drivers/usb/class/cdc-acm.c index 1ac6c5dda9f7..c255e77282ad 100644 --- a/drivers/usb/class/cdc-acm.c +++ b/drivers/usb/class/cdc-acm.c | |||
@@ -668,7 +668,13 @@ static int acm_tty_write(struct tty_struct *tty, | |||
668 | memcpy(wb->buf, buf, count); | 668 | memcpy(wb->buf, buf, count); |
669 | wb->len = count; | 669 | wb->len = count; |
670 | 670 | ||
671 | usb_autopm_get_interface_async(acm->control); | 671 | stat = usb_autopm_get_interface_async(acm->control); |
672 | if (stat) { | ||
673 | wb->use = 0; | ||
674 | spin_unlock_irqrestore(&acm->write_lock, flags); | ||
675 | return stat; | ||
676 | } | ||
677 | |||
672 | if (acm->susp_count) { | 678 | if (acm->susp_count) { |
673 | usb_anchor_urb(wb->urb, &acm->delayed); | 679 | usb_anchor_urb(wb->urb, &acm->delayed); |
674 | spin_unlock_irqrestore(&acm->write_lock, flags); | 680 | spin_unlock_irqrestore(&acm->write_lock, flags); |