From 75f00068fb22da2559efcb0f58f74ada0f8af985 Mon Sep 17 00:00:00 2001 From: Milan Svoboda Date: Mon, 26 Jun 2006 07:46:00 -0700 Subject: [PATCH] --- yaml --- r: 36397 b: refs/heads/master c: 07cb7f23d07aa4d197dbeb123eb9719c176190ee h: refs/heads/master i: 36395: 420ce7698210eea2f438cd3817f301f7e974c472 v: v3 --- [refs] | 2 +- trunk/drivers/usb/gadget/inode.c | 5 +++-- 2 files changed, 4 insertions(+), 3 deletions(-) diff --git a/[refs] b/[refs] index c06dae74fe17..8895e22526f8 100644 --- a/[refs] +++ b/[refs] @@ -1,2 +1,2 @@ --- -refs/heads/master: 17efe155253e3f81caa6cc57ec2af1c128618698 +refs/heads/master: 07cb7f23d07aa4d197dbeb123eb9719c176190ee diff --git a/trunk/drivers/usb/gadget/inode.c b/trunk/drivers/usb/gadget/inode.c index 2a7162d89799..da85732fa993 100644 --- a/trunk/drivers/usb/gadget/inode.c +++ b/trunk/drivers/usb/gadget/inode.c @@ -1696,16 +1696,17 @@ gadgetfs_disconnect (struct usb_gadget *gadget) { struct dev_data *dev = get_gadget_data (gadget); + spin_lock (&dev->lock); if (dev->state == STATE_UNCONNECTED) { DBG (dev, "already unconnected\n"); - return; + goto exit; } dev->state = STATE_UNCONNECTED; INFO (dev, "disconnected\n"); - spin_lock (&dev->lock); next_event (dev, GADGETFS_DISCONNECT); ep0_readable (dev); +exit: spin_unlock (&dev->lock); }