From 1b21d5e166e104f8914441ef52e2cd50ce65b479 Mon Sep 17 00:00:00 2001
From: Greg Kroah-Hartman <gregkh@suse.de>
Date: Mon, 28 Aug 2006 11:43:25 -0700
Subject: [PATCH 1/3] USB: fix __must_check warnings in drivers/usb/core/

Orabug: 14795203

commit 1b21d5e166e104f8914441ef52e2cd50ce65b479 upstream

Signed-off-by: Greg Kroah-Hartman <gregkh@suse.de>
[pick warning fix for endpoint.c in upstream commit]
Signed-off-by: Junxiao Bi <junxiao.bi@oracle.com>
---
 drivers/usb/core/endpoint.c |   20 +++++++++++++++++---
 1 files changed, 17 insertions(+), 3 deletions(-)

diff --git a/drivers/usb/core/endpoint.c b/drivers/usb/core/endpoint.c
index 247b5a4..3ebb901 100644
--- a/drivers/usb/core/endpoint.c
+++ b/drivers/usb/core/endpoint.c
@@ -242,18 +242,32 @@ void usb_create_ep_files(struct device *
 	retval = device_register(&ep_dev->dev);
 	if (retval)
 		goto error;
-	sysfs_create_group(&ep_dev->dev.kobj, &ep_dev_attr_grp);
+	retval = sysfs_create_group(&ep_dev->dev.kobj, &ep_dev_attr_grp);
+	if (retval)
+		goto error_group;
 
 	endpoint->ep_dev = ep_dev;
 
 	/* create the symlink to the old-style "ep_XX" directory */
 	sprintf(name, "ep_%02x", endpoint->desc.bEndpointAddress);
-	sysfs_create_link(&parent->kobj, &endpoint->ep_dev->dev.kobj, name);
-
+	retval = sysfs_create_link(&parent->kobj,
+				   &endpoint->ep_dev->dev.kobj, name);
+	if (retval)
+		goto error_link;
 exit:
 	return;
+
+error_link:
+	sysfs_remove_group(&ep_dev->dev.kobj, &ep_dev_attr_grp);
+
+error_group:
+	device_unregister(&ep_dev->dev);
+	endpoint->ep_dev = NULL;
+	destroy_endpoint_class();
+	return;
 error:
 	kfree(ep_dev);
+	destroy_endpoint_class();
 	return;
 }
 
-- 
1.7.9.5

