From 4f5bbda1462ee6fefc9c18a03c908bab132764f2 Mon Sep 17 00:00:00 2001 From: Neil Zhang Date: Tue, 10 Jul 2012 10:07:07 +0800 Subject: [PATCH] --- yaml --- r: 325875 b: refs/heads/master c: 11c37c8b64b9d9d4ab19d387e6028eee3ec188d3 h: refs/heads/master i: 325873: b2161408a14a7fef710123dc94c18db0dfc95155 325871: f60d7fde4c73be82acbcaf6c9a1eec4f1417126b v: v3 --- [refs] | 2 +- trunk/drivers/usb/gadget/mv_udc_core.c | 4 ++++ 2 files changed, 5 insertions(+), 1 deletion(-) diff --git a/[refs] b/[refs] index fb56c422ea22..368911cbbd82 100644 --- a/[refs] +++ b/[refs] @@ -1,2 +1,2 @@ --- -refs/heads/master: 1dcaa252fdf01e4ba49ece156812043baf01c7cc +refs/heads/master: 11c37c8b64b9d9d4ab19d387e6028eee3ec188d3 diff --git a/trunk/drivers/usb/gadget/mv_udc_core.c b/trunk/drivers/usb/gadget/mv_udc_core.c index 58edff9abcef..ad91de4d60d8 100644 --- a/trunk/drivers/usb/gadget/mv_udc_core.c +++ b/trunk/drivers/usb/gadget/mv_udc_core.c @@ -1221,12 +1221,16 @@ static int mv_udc_vbus_session(struct usb_gadget *gadget, int is_active) udc_start(udc); } } else if (udc->driver && udc->softconnect) { + if (!udc->active) + goto out; + /* stop all the transfer in queue*/ stop_activity(udc, udc->driver); udc_stop(udc); mv_udc_disable(udc); } +out: spin_unlock_irqrestore(&udc->lock, flags); return retval; }