From 6809700376c38d849ef306c0c544968bc8401ac0 Mon Sep 17 00:00:00 2001 From: Milan Svoboda Date: Mon, 26 Jun 2006 07:48:00 -0700 Subject: [PATCH] --- yaml --- r: 36399 b: refs/heads/master c: ba307f5828b1b4a1348d99c4f430a0cf3beeae2f h: refs/heads/master i: 36397: 75f00068fb22da2559efcb0f58f74ada0f8af985 36395: 420ce7698210eea2f438cd3817f301f7e974c472 36391: 3a6a68746c32d0a64f705a3e6ae72080929185d9 36383: d457c67c941546cb459bf0d08ed9ec70cf77e21d v: v3 --- [refs] | 2 +- trunk/drivers/usb/gadget/inode.c | 5 +++++ 2 files changed, 6 insertions(+), 1 deletion(-) diff --git a/[refs] b/[refs] index 7a5e4a1f6013..ed072242a1fd 100644 --- a/[refs] +++ b/[refs] @@ -1,2 +1,2 @@ --- -refs/heads/master: 8a7471aba19dc526978a03bfe2e3c122712b5900 +refs/heads/master: ba307f5828b1b4a1348d99c4f430a0cf3beeae2f diff --git a/trunk/drivers/usb/gadget/inode.c b/trunk/drivers/usb/gadget/inode.c index 72c88aa94d5d..ab508858f341 100644 --- a/trunk/drivers/usb/gadget/inode.c +++ b/trunk/drivers/usb/gadget/inode.c @@ -477,6 +477,10 @@ static int ep_release (struct inode *inode, struct file *fd) { struct ep_data *data = fd->private_data; + int value; + + if ((value = down_interruptible(&data->lock)) < 0) + return value; /* clean up if this can be reopened */ if (data->state != STATE_EP_UNBOUND) { @@ -485,6 +489,7 @@ ep_release (struct inode *inode, struct file *fd) data->hs_desc.bDescriptorType = 0; usb_ep_disable(data->ep); } + up (&data->lock); put_ep (data); return 0; }