Re: [REGRESSION] "USB: use kfifo to buffer usb-generic serial writes" causes gobi_loader to hang

From: Oliver Neukum
Date: Mon Feb 22 2010 - 18:26:21 EST


Am Montag, 22. Februar 2010 19:35:35 schrieb Anssi Hannula:
> On maanantai 22 helmikuu 2010 17:28:36 Alan Stern wrote:

> > The major difference between the logs is in the way the data get
> > divided up into packets. In both the successful logs, there are
> > sequences of bulk-OUT packets with lengths like:
> >
> > 44, 1, 15, 1, 13
> >
> > where the unsuccessful transfer just has a single packet of length 74.
> > Also, the successful transfers show a lot of bulk-IN traffic where the
> > unsuccessful transfer doesn't have any. I don't know if that is
> > relevant, however.
> >
> > No other differences stand out.
>
> I guess that would suggest that the device doesn't allow the initialization
> data to be broken into packets arbitrarily (though some differences seem
> allowed, as the windows driver transmits them differently).

Hi,

let's try testing this hypothesis. Can you change the following line in
usb_serial_probe():
if (kfifo_alloc(&port->write_fifo, PAGE_SIZE, GFP_KERNEL))
goto probe_error;

to:

if (kfifo_alloc(&port->write_fifo, 64, GFP_KERNEL))
goto probe_error;

This may shed some light on the behavior.

Regards
Oliver
--
To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
the body of a message to majordomo@xxxxxxxxxxxxxxx
More majordomo info at http://vger.kernel.org/majordomo-info.html
Please read the FAQ at http://www.tux.org/lkml/