diff options
Diffstat (limited to 'drivers/usb/class/cdc-acm.c')
-rw-r--r-- | drivers/usb/class/cdc-acm.c | 20 |
1 files changed, 20 insertions, 0 deletions
diff --git a/drivers/usb/class/cdc-acm.c b/drivers/usb/class/cdc-acm.c index e1331590909c..7a37bf93b65e 100644 --- a/drivers/usb/class/cdc-acm.c +++ b/drivers/usb/class/cdc-acm.c @@ -1282,6 +1282,11 @@ static void stop_data_traffic(struct acm *acm) { int i; + if (!acm) { + pr_err("%s: !acm\n", __func__); + return; + } + dev_dbg(&acm->control->dev, "%s\n", __func__); usb_kill_urb(acm->ctrlurb); @@ -1347,6 +1352,11 @@ static int acm_suspend(struct usb_interface *intf, pm_message_t message) struct acm *acm = usb_get_intfdata(intf); int cnt; + if (!acm) { + pr_err("%s: !acm\n", __func__); + return -ENODEV; + } + if (message.event & PM_EVENT_AUTO) { int b; @@ -1389,6 +1399,11 @@ static int acm_resume(struct usb_interface *intf) struct acm_wb *wb; #endif + if (!acm) { + pr_err("%s: !acm\n", __func__); + return -ENODEV; + } + spin_lock_irq(&acm->read_lock); acm->susp_count -= 1; cnt = acm->susp_count; @@ -1445,6 +1460,11 @@ static int acm_reset_resume(struct usb_interface *intf) struct acm *acm = usb_get_intfdata(intf); struct tty_struct *tty; + if (!acm) { + pr_err("%s: !acm\n", __func__); + return -ENODEV; + } + mutex_lock(&acm->mutex); if (acm->port.count) { tty = tty_port_tty_get(&acm->port); |