Return-Path: Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S1752439AbdDCVGY (ORCPT ); Mon, 3 Apr 2017 17:06:24 -0400 Received: from iolanthe.rowland.org ([192.131.102.54]:45662 "HELO iolanthe.rowland.org" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with SMTP id S1751384AbdDCVGX (ORCPT ); Mon, 3 Apr 2017 17:06:23 -0400 Date: Mon, 3 Apr 2017 17:06:22 -0400 (EDT) From: Alan Stern X-X-Sender: stern@iolanthe.rowland.org To: "Gustavo A. R. Silva" cc: Greg Kroah-Hartman , Felipe Balbi , Peter Chen , Chunfeng Yun , Mathias Nyman , , , Peter Senna Tschudin Subject: Re: [PATCH 2/2] usb: misc: refactor code In-Reply-To: <20170403195042.GA12225@embeddedgus> Message-ID: MIME-Version: 1.0 Content-Type: TEXT/PLAIN; charset=US-ASCII Sender: linux-kernel-owner@vger.kernel.org List-ID: X-Mailing-List: linux-kernel@vger.kernel.org Content-Length: 3446 Lines: 128 On Mon, 3 Apr 2017, Gustavo A. R. Silva wrote: > Code refactoring to make the flow easier to follow. > > Cc: Alan Stern > Cc: Greg Kroah-Hartman > Signed-off-by: Gustavo A. R. Silva > --- > drivers/usb/misc/usbtest.c | 67 +++++++++++++++++++++------------------------- > 1 file changed, 30 insertions(+), 37 deletions(-) > > diff --git a/drivers/usb/misc/usbtest.c b/drivers/usb/misc/usbtest.c > index 7bfb6b78..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; What's the difference between these 6 lines you added and the 6 lines that were there originally? > for (tmp = 0; tmp < intf->num_altsetting; tmp++) { > - unsigned ep; > + unsigned ep; And here? > > in = out = NULL; > iso_in = iso_out = NULL; > @@ -150,48 +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; And here? > + 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 */ Why change the comment? Alan Stern > 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; >