linux-kernel.vger.kernel.org archive mirror
 help / color / mirror / Atom feed
* [PATCH v2] USB hub_probe: remove ugly goto-into-compound-statement
@ 2016-11-02 17:59 Eugene Korenevsky
  2016-11-07  9:09 ` Greg Kroah-Hartman
  0 siblings, 1 reply; 3+ messages in thread
From: Eugene Korenevsky @ 2016-11-02 17:59 UTC (permalink / raw)
  To: linux-kernel, linux-usb
  Cc: Luiz Capitulino, Linus Torvalds, Chase Metzger,
	Greg Kroah-Hartman, Alan Stern, Mathias Nyman, Lu Baolu,
	Oliver Neukum, Hans Yang

Rework smelling code (goto inside compound statement). Perhaps this is legacy.
Anyway such code is not appropriate for Linux kernel.

Signed-off-by: Eugene Korenevsky <ekorenevsky@gmail.com>
---
 drivers/usb/core/hub.c | 24 +++++++++++-------------
 1 file changed, 11 insertions(+), 13 deletions(-)

diff --git a/drivers/usb/core/hub.c b/drivers/usb/core/hub.c
index cbb1467..4081672 100644
--- a/drivers/usb/core/hub.c
+++ b/drivers/usb/core/hub.c
@@ -1802,23 +1802,21 @@ static int hub_probe(struct usb_interface *intf, const struct usb_device_id *id)
 
 	/* Some hubs have a subclass of 1, which AFAICT according to the */
 	/*  specs is not defined, but it works */
-	if ((desc->desc.bInterfaceSubClass != 0) &&
-	    (desc->desc.bInterfaceSubClass != 1)) {
-descriptor_error:
+
+	/* Reject in following cases:
+	 * - Interface subclass is not 0 or 1
+	 * - Multiple endpoints
+	 * - Not an interrupt in endpoint
+	 */
+	endpoint = &desc->endpoint[0].desc;
+	if ((desc->desc.bInterfaceSubClass != 0 &&
+	     desc->desc.bInterfaceSubClass != 1) ||
+	    desc->desc.bNumEndpoints != 1 ||
+	    !usb_endpoint_is_int_in(endpoint)) {
 		dev_err(&intf->dev, "bad descriptor, ignoring hub\n");
 		return -EIO;
 	}
 
-	/* Multiple endpoints? What kind of mutant ninja-hub is this? */
-	if (desc->desc.bNumEndpoints != 1)
-		goto descriptor_error;
-
-	endpoint = &desc->endpoint[0].desc;
-
-	/* If it's not an interrupt in endpoint, we'd better punt! */
-	if (!usb_endpoint_is_int_in(endpoint))
-		goto descriptor_error;
-
 	/* We found a hub */
 	dev_info(&intf->dev, "USB hub found\n");
 
-- 
2.10.2

^ permalink raw reply related	[flat|nested] 3+ messages in thread

end of thread, other threads:[~2016-11-07 18:44 UTC | newest]

Thread overview: 3+ messages (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
2016-11-02 17:59 [PATCH v2] USB hub_probe: remove ugly goto-into-compound-statement Eugene Korenevsky
2016-11-07  9:09 ` Greg Kroah-Hartman
2016-11-07 18:42   ` Eugene Korenevsky

This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for NNTP newsgroup(s).