Hi Pete,

> > 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?
>

serial_unthrottle is not an issue because it is called as the result
of system calls, where as serial_throttle is called when the tty
driver buffer is full.  As we have seen, calls to serial_throttle can
occur from an interrupt handler when the driver is receiving too much
new data.  This can make the semaphore down function call inside
serial_throttle panic.

Specifically, serial_unthrottle can be called from read, open, and
close system calls, or when the tty driver is flushed.  As a result,
there is no need to queue serial_unthrottle calls using the mechanism
already in place for serial_write and that I implemented for
serial_throttle.

I will re-submit my previous patch except against the 2.4.27 kernel
and using the proper coding style.  If I still made a coding style
mistake, let me know what it is and I will correct it.

--Sam


-------------------------------------------------------
This SF.Net email is sponsored by: YOU BE THE JUDGE. Be one of 170
Project Admins to receive an Apple iPod Mini FREE for your judgement on
who ports your project to Linux PPC the best. Sponsored by IBM.
Deadline: Sept. 24. Go here: http://sf.net/ppc_contest.php
_______________________________________________
[EMAIL PROTECTED]
To unsubscribe, use the last form field at:
https://lists.sourceforge.net/lists/listinfo/linux-usb-devel

Reply via email to