diff options
author | Sarah Bailey <saharabeara@gmail.com> | 2007-01-04 00:37:22 -0500 |
---|---|---|
committer | Greg Kroah-Hartman <gregkh@suse.de> | 2007-01-05 15:19:09 -0500 |
commit | c07be136a883a148a16ce4cd91163035631b37ea (patch) | |
tree | d4ab4f8279e93593b551e96e172899b7e6594930 | |
parent | 684a0e70008934dbdf87ed35e29ccbb58e91f8dc (diff) |
USB: Fixed bug in endpoint release function.
Error handling in usb_create_ep_files() is not correct unless
the minor number is freed in ep_device_release().
Signed-off-by: Sarah Bailey <saharabeara@gmail.com>
Signed-off-by: Greg Kroah-Hartman <gregkh@suse.de>
-rw-r--r-- | drivers/usb/core/endpoint.c | 2 |
1 files changed, 1 insertions, 1 deletions
diff --git a/drivers/usb/core/endpoint.c b/drivers/usb/core/endpoint.c index c505b767cee1..5e628ae3aec7 100644 --- a/drivers/usb/core/endpoint.c +++ b/drivers/usb/core/endpoint.c | |||
@@ -268,6 +268,7 @@ static void ep_device_release(struct device *dev) | |||
268 | struct ep_device *ep_dev = to_ep_device(dev); | 268 | struct ep_device *ep_dev = to_ep_device(dev); |
269 | 269 | ||
270 | dev_dbg(dev, "%s called for %s\n", __FUNCTION__, dev->bus_id); | 270 | dev_dbg(dev, "%s called for %s\n", __FUNCTION__, dev->bus_id); |
271 | endpoint_free_minor(ep_dev); | ||
271 | kfree(ep_dev); | 272 | kfree(ep_dev); |
272 | } | 273 | } |
273 | 274 | ||
@@ -349,7 +350,6 @@ void usb_remove_ep_files(struct usb_host_endpoint *endpoint) | |||
349 | sprintf(name, "ep_%02x", endpoint->desc.bEndpointAddress); | 350 | sprintf(name, "ep_%02x", endpoint->desc.bEndpointAddress); |
350 | sysfs_remove_link(&ep_dev->dev.parent->kobj, name); | 351 | sysfs_remove_link(&ep_dev->dev.parent->kobj, name); |
351 | sysfs_remove_group(&ep_dev->dev.kobj, &ep_dev_attr_grp); | 352 | sysfs_remove_group(&ep_dev->dev.kobj, &ep_dev_attr_grp); |
352 | endpoint_free_minor(ep_dev); | ||
353 | device_unregister(&ep_dev->dev); | 353 | device_unregister(&ep_dev->dev); |
354 | endpoint->ep_dev = NULL; | 354 | endpoint->ep_dev = NULL; |
355 | destroy_endpoint_class(); | 355 | destroy_endpoint_class(); |