On Sat, Nov 10, 2012 at 06:33:56AM +0900, YAMANE Toshiaki wrote: > Modified to eliminate the deep nesting and redundant description. > > Signed-off-by: YAMANE Toshiaki <yamanetoshi@xxxxxxxxx> > --- > drivers/staging/serqt_usb2/serqt_usb2.c | 147 +++++++++++++++++-------------- > 1 file changed, 80 insertions(+), 67 deletions(-) > > diff --git a/drivers/staging/serqt_usb2/serqt_usb2.c b/drivers/staging/serqt_usb2/serqt_usb2.c > index 9bc8923..0395bdf 100644 > --- a/drivers/staging/serqt_usb2/serqt_usb2.c > +++ b/drivers/staging/serqt_usb2/serqt_usb2.c > @@ -291,22 +291,89 @@ static void qt_interrupt_callback(struct urb *urb) > /* FIXME */ > } > > +static int qt_status_change(unsigned int limit, > + unsigned char *data, > + int i, > + struct quatech_port *qt_port, > + struct usb_serial_port *port) > +{ > + void (*fn)(struct quatech_port *, unsigned char); > + > + if (0x00 == data[i + 2]) { > + dev_dbg(&port->dev, "Line status status.\n"); > + fn = ProcessLineStatus; > + } else { > + dev_dbg(&port->dev, "Modem status status.\n"); > + fn = ProcessModemStatus; > + } > + > + if (i > limit) { Why can't we test whether i == (RxCount - 3) earlier and handle the errors there? That way we wouldn't need to pass the limit variable. In fact, this whole function is sort of nasty. We start by doing a switch (data[i + 2]) { then we combine the 0x00 and 0x01 and call this function which separates them out and sets a function pointer and then calls the function point? Get rid of this whole function. You shouldn't need to use function pointers to do this; that's too many levels of abstraction. > + dev_dbg(&port->dev, > + "Illegal escape seuences in received data\n"); > + return 0; > + } > + > + (*fn)(qt_port, data[i + 3]); > + > + return 1; > +} > + [snip] > if (urb->status) { > qt_port->ReadBulkStopped = 1; > - dev_dbg(&urb->dev->dev, "%s - nonzero write bulk status received: %d\n", > + dev_dbg(&urb->dev->dev, > + "%s - nonzero write bulk status received: %d\n", > __func__, urb->status); Don't mix in these unrelated 80 character limit changes. regards, dan carpenter _______________________________________________ devel mailing list devel@xxxxxxxxxxxxxxxxxxxxxx http://driverdev.linuxdriverproject.org/mailman/listinfo/devel