USB: gadgetfs: protect ep_release with lock
This patch adds mutex protection to ep_release. Signed-off-by: Milan Svoboda <msvoboda@ra.rockwell.com> Signed-off-by: David Brownell <dbrownell@users.sourceforge.net> Signed-off-by: Greg Kroah-Hartman <gregkh@suse.de>
This commit is contained in:
committed by
Greg Kroah-Hartman
parent
8a7471aba1
commit
ba307f5828
@@ -477,6 +477,10 @@ static int
|
|||||||
ep_release (struct inode *inode, struct file *fd)
|
ep_release (struct inode *inode, struct file *fd)
|
||||||
{
|
{
|
||||||
struct ep_data *data = fd->private_data;
|
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 */
|
/* clean up if this can be reopened */
|
||||||
if (data->state != STATE_EP_UNBOUND) {
|
if (data->state != STATE_EP_UNBOUND) {
|
||||||
@@ -485,6 +489,7 @@ ep_release (struct inode *inode, struct file *fd)
|
|||||||
data->hs_desc.bDescriptorType = 0;
|
data->hs_desc.bDescriptorType = 0;
|
||||||
usb_ep_disable(data->ep);
|
usb_ep_disable(data->ep);
|
||||||
}
|
}
|
||||||
|
up (&data->lock);
|
||||||
put_ep (data);
|
put_ep (data);
|
||||||
return 0;
|
return 0;
|
||||||
}
|
}
|
||||||
|
Reference in New Issue
Block a user