diff options
Diffstat (limited to 'drivers/usb/class/cdc-acm.c')
-rw-r--r-- | drivers/usb/class/cdc-acm.c | 9 |
1 files changed, 7 insertions, 2 deletions
diff --git a/drivers/usb/class/cdc-acm.c b/drivers/usb/class/cdc-acm.c index 7a37bf93b65e..a06f2cdc6106 100644 --- a/drivers/usb/class/cdc-acm.c +++ b/drivers/usb/class/cdc-acm.c @@ -1405,8 +1405,13 @@ static int acm_resume(struct usb_interface *intf) } spin_lock_irq(&acm->read_lock); - acm->susp_count -= 1; - cnt = acm->susp_count; + if (acm->susp_count > 0) { + acm->susp_count -= 1; + cnt = acm->susp_count; + } else { + spin_unlock_irq(&acm->read_lock); + return 0; + } spin_unlock_irq(&acm->read_lock); if (cnt) |