Groups | Search | Server Info | Keyboard shortcuts | Login | Register [http] [https] [nntp] [nntps]


Groups > linux.kernel > #1615439 > unrolled thread

[PATCH] usb: misc: add missing continue and refactor code

Started by"Gustavo A. R. Silva" <garsilva@embeddedor.com>
First post2017-04-03 19:40 +0200
Last post2017-04-03 22:10 +0200
Articles 5 — 3 participants

Back to article view | Back to linux.kernel

This discussion starts older than the indexed window; earlier articles aren't shown. The article labeled Started by below is the oldest one visible, not the original post.


Contents

  [PATCH] usb: misc: add missing continue and refactor code "Gustavo A. R. Silva" <garsilva@embeddedor.com> - 2017-04-03 19:40 +0200
    Re: [PATCH] usb: misc: add missing continue and refactor code Greg Kroah-Hartman <gregkh@linuxfoundation.org> - 2017-04-03 20:00 +0200
      Re: [PATCH] usb: misc: add missing continue and refactor code Alan Stern <stern@rowland.harvard.edu> - 2017-04-03 20:40 +0200
        Re: [PATCH] usb: misc: add missing continue and refactor code "Gustavo A. R. Silva" <garsilva@embeddedor.com> - 2017-04-03 21:30 +0200
          [PATCH 1/2] usb: misc: add missing continue in switch "Gustavo A. R. Silva" <garsilva@embeddedor.com> - 2017-04-03 22:10 +0200

#1615439 — [PATCH] usb: misc: add missing continue and refactor code

From"Gustavo A. R. Silva" <garsilva@embeddedor.com>
Date2017-04-03 19:40 +0200
Subject[PATCH] usb: misc: add missing continue and refactor code
Message-ID<tse7n-1tY-3@gated-at.bofh.it>
-Code refactoring to make the flow easier to follow.
-Add missing 'continue' for case USB_ENDPOINT_XFER_INT.

Addresses-Coverity-ID: 1248733
Cc: Alan Stern <stern@rowloand.harvard.edu>
Signed-off-by: Gustavo A. R. Silva <garsilva@embeddedor.com>
---
 drivers/usb/misc/usbtest.c | 68 +++++++++++++++++++++-------------------------
 1 file changed, 31 insertions(+), 37 deletions(-)

diff --git a/drivers/usb/misc/usbtest.c b/drivers/usb/misc/usbtest.c
index 3525626..382491e 100644
--- a/drivers/usb/misc/usbtest.c
+++ b/drivers/usb/misc/usbtest.c
@@ -124,18 +124,32 @@ static struct usb_device *testdev_to_usbdev(struct usbtest_dev *test)
 
 /*-------------------------------------------------------------------------*/
 
+static inline void endpoint_update(int edi,
+				   struct usb_host_endpoint **in,
+				   struct usb_host_endpoint **out,
+				   struct usb_host_endpoint *e)
+{
+	if (edi) {
+		if (!*in)
+			*in = e;
+	} else {
+		if (!*out)
+			*out = e;
+	}
+}
+
 static int
 get_endpoints(struct usbtest_dev *dev, struct usb_interface *intf)
 {
-	int				tmp;
-	struct usb_host_interface	*alt;
-	struct usb_host_endpoint	*in, *out;
-	struct usb_host_endpoint	*iso_in, *iso_out;
-	struct usb_host_endpoint	*int_in, *int_out;
-	struct usb_device		*udev;
+	int                             tmp;
+	struct usb_host_interface       *alt;
+	struct usb_host_endpoint        *in, *out;
+	struct usb_host_endpoint        *iso_in, *iso_out;
+	struct usb_host_endpoint        *int_in, *int_out;
+	struct usb_device               *udev;
 
 	for (tmp = 0; tmp < intf->num_altsetting; tmp++) {
-		unsigned	ep;
+		unsigned        ep;
 
 		in = out = NULL;
 		iso_in = iso_out = NULL;
@@ -150,47 +164,27 @@ get_endpoints(struct usbtest_dev *dev, struct usb_interface *intf)
 		 * ignore other endpoints and altsettings.
 		 */
 		for (ep = 0; ep < alt->desc.bNumEndpoints; ep++) {
-			struct usb_host_endpoint	*e;
+			struct usb_host_endpoint        *e;
+			int edi;
 
 			e = alt->endpoint + ep;
+			edi = usb_endpoint_dir_in(&e->desc);
+
 			switch (usb_endpoint_type(&e->desc)) {
 			case USB_ENDPOINT_XFER_BULK:
-				break;
+				endpoint_update(edi, &in, &out, e);
+				continue;
 			case USB_ENDPOINT_XFER_INT:
 				if (dev->info->intr)
-					goto try_intr;
+					endpoint_update(edi, &int_in, &int_out, e);
+				continue;
 			case USB_ENDPOINT_XFER_ISOC:
 				if (dev->info->iso)
-					goto try_iso;
-				/* FALLTHROUGH */
+					endpoint_update(edi, &iso_in, &iso_out, e);
+				/* fall through */
 			default:
 				continue;
 			}
-			if (usb_endpoint_dir_in(&e->desc)) {
-				if (!in)
-					in = e;
-			} else {
-				if (!out)
-					out = e;
-			}
-			continue;
-try_intr:
-			if (usb_endpoint_dir_in(&e->desc)) {
-				if (!int_in)
-					int_in = e;
-			} else {
-				if (!int_out)
-					int_out = e;
-			}
-			continue;
-try_iso:
-			if (usb_endpoint_dir_in(&e->desc)) {
-				if (!iso_in)
-					iso_in = e;
-			} else {
-				if (!iso_out)
-					iso_out = e;
-			}
 		}
 		if ((in && out)  ||  iso_in || iso_out || int_in || int_out)
 			goto found;
-- 
2.5.0

[toc] | [next] | [standalone]


#1615451

FromGreg Kroah-Hartman <gregkh@linuxfoundation.org>
Date2017-04-03 20:00 +0200
Message-ID<tseqK-1BV-19@gated-at.bofh.it>
In reply to#1615439
On Mon, Apr 03, 2017 at 09:39:53AM -0500, Gustavo A. R. Silva wrote:
> -Code refactoring to make the flow easier to follow.
> -Add missing 'continue' for case USB_ENDPOINT_XFER_INT.

Don't do multiple things in the same patch, please make these multiple
patches.  And do the "add missing continue" first, so it can be
backported to other kernels easier please.

thanks,

greg k-h

[toc] | [prev] | [next] | [standalone]


#1615469

FromAlan Stern <stern@rowland.harvard.edu>
Date2017-04-03 20:40 +0200
Message-ID<tsf3r-24M-13@gated-at.bofh.it>
In reply to#1615451
On Mon, 3 Apr 2017, Greg Kroah-Hartman wrote:

> On Mon, Apr 03, 2017 at 09:39:53AM -0500, Gustavo A. R. Silva wrote:
> > -Code refactoring to make the flow easier to follow.
> > -Add missing 'continue' for case USB_ENDPOINT_XFER_INT.
> 
> Don't do multiple things in the same patch, please make these multiple
> patches.  And do the "add missing continue" first, so it can be
> backported to other kernels easier please.

Also, make sure your patch does not contain gratuitous whitespace 
changes.

Alan Stern

[toc] | [prev] | [next] | [standalone]


#1615510

From"Gustavo A. R. Silva" <garsilva@embeddedor.com>
Date2017-04-03 21:30 +0200
Message-ID<tsfPP-2Fz-9@gated-at.bofh.it>
In reply to#1615469
Quoting Alan Stern <stern@rowland.harvard.edu>:

> On Mon, 3 Apr 2017, Greg Kroah-Hartman wrote:
>
>> On Mon, Apr 03, 2017 at 09:39:53AM -0500, Gustavo A. R. Silva wrote:
>> > -Code refactoring to make the flow easier to follow.
>> > -Add missing 'continue' for case USB_ENDPOINT_XFER_INT.
>>
>> Don't do multiple things in the same patch, please make these multiple
>> patches.  And do the "add missing continue" first, so it can be
>> backported to other kernels easier please.
>

OK, I will send a patchset shortly.

> Also, make sure your patch does not contain gratuitous whitespace
> changes.
>

Does it have any?
I ran it through checkpatch.pl before sending it and didn't see any.

Thanks
--
Gustavo A. R. Silva

[toc] | [prev] | [next] | [standalone]


#1615531 — [PATCH 1/2] usb: misc: add missing continue in switch

From"Gustavo A. R. Silva" <garsilva@embeddedor.com>
Date2017-04-03 22:10 +0200
Subject[PATCH 1/2] usb: misc: add missing continue in switch
Message-ID<tsgiS-2PU-15@gated-at.bofh.it>
In reply to#1615510
Add missing continue in switch.

Addresses-Coverity-ID: 1248733
Cc: Alan Stern <stern@rowloand.harvard.edu>
Cc: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
Signed-off-by: Gustavo A. R. Silva <garsilva@embeddedor.com>
---
 drivers/usb/misc/usbtest.c | 1 +
 1 file changed, 1 insertion(+)

diff --git a/drivers/usb/misc/usbtest.c b/drivers/usb/misc/usbtest.c
index 3525626..7bfb6b78 100644
--- a/drivers/usb/misc/usbtest.c
+++ b/drivers/usb/misc/usbtest.c
@@ -159,6 +159,7 @@ get_endpoints(struct usbtest_dev *dev, struct usb_interface *intf)
 			case USB_ENDPOINT_XFER_INT:
 				if (dev->info->intr)
 					goto try_intr;
+				continue;
 			case USB_ENDPOINT_XFER_ISOC:
 				if (dev->info->iso)
 					goto try_iso;
-- 
2.5.0

[toc] | [prev] | [standalone]


Back to top | Article view | linux.kernel


csiph-web