Hi Pete,

That is an interesting point.  I am far from a usb serial expert, but
it looks like this is not a problem because usbserial.c already
handles writes that might happen during an interrupt.  Would a better
solution to the original bug be to queue serial_read calls rather than
the serial_throttle?  I might be way off base here, but I will look
into this more.

Also, I confirmed the bug with an unmodified 2.4.27 kernel.  To
reproduce, do the following with a null modem cable connecting ttyS1
and ttyUSB0:

stty -F /dev/ttyUSB0 cread ispeed 115200 ospeed 115200 crtscts
stty -F /dev/ttyS1 cread ispeed 115200 ospeed 115200 crtscts

console1:
cat /dev/ttyUSB0 | tee /dev/ttyUSB0

console2:
cat /dev/ttyS1

console3:
while [ "1" = "1" ]; do
echo "aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa" > /dev/ttyS1
done

with an io_ti.c device attached to ttyUSB0.

--Sam

---------------------------------
Sam King
Ph.D. Student
Computer Science Department
University of Michigan, Ann Arbor

On Tue, 14 Sep 2004, Pete Zaitcev wrote:

> On Tue, 14 Sep 2004 10:58:48 -0400 (EDT)
> Sam King <[EMAIL PROTECTED]> wrote:
>
> > I found a bug where the io_ti.c driver calls schedule while in an
> > interrupt.  The problem stems from usbserial.c allowing a
> > serial_throttle call proceed while in an interrupt, which results in
> > sending a urb to clear the CTS bit of the usb serial port, and thus a
> > call to schedule.
>
> What about the unthrottle?
>
> Also, please respect the code formatting and spacing.
>
> -- Pete
>


-------------------------------------------------------
This SF.Net email is sponsored by: thawte's Crypto Challenge Vl
Crack the code and win a Sony DCRHC40 MiniDV Digital Handycam
Camcorder. More prizes in the weekly Lunch Hour Challenge.
Sign up NOW http://ad.doubleclick.net/clk;10740251;10262165;m
_______________________________________________
[EMAIL PROTECTED]
To unsubscribe, use the last form field at:
https://lists.sourceforge.net/lists/listinfo/linux-usb-devel

Reply via email to