mirror of
https://github.com/Fishwaldo/Star64_linux.git
synced 2025-07-23 23:32:14 +00:00
tty: usb-serial krefs
Use kref in the USB serial drivers so that we don't free tty structures from under the URB receive handlers as has historically been the case if you were unlucky. This also gives us a framework for general tty drivers to use tty_port objects and refcount. Contains two err->dev_err changes merged together to fix clashes in the -next tree. Signed-off-by: Alan Cox <alan@redhat.com> Signed-off-by: Linus Torvalds <torvalds@linux-foundation.org>
This commit is contained in:
parent
95f9bfc6b7
commit
4a90f09b20
37 changed files with 313 additions and 208 deletions
|
@ -33,9 +33,8 @@
|
|||
* Moved MOD_DEC_USE_COUNT to end of empeg_close().
|
||||
*
|
||||
* (12/03/2000) gb
|
||||
* Added port->port.tty->ldisc.set_termios(port->port.tty, NULL) to
|
||||
* empeg_open(). This notifies the tty driver that the termios have
|
||||
* changed.
|
||||
* Added tty->ldisc.set_termios(port, tty, NULL) to empeg_open().
|
||||
* This notifies the tty driver that the termios have changed.
|
||||
*
|
||||
* (11/13/2000) gb
|
||||
* Moved tty->low_latency = 1 from empeg_read_bulk_callback() to
|
||||
|
@ -354,7 +353,7 @@ static void empeg_read_bulk_callback(struct urb *urb)
|
|||
|
||||
usb_serial_debug_data(debug, &port->dev, __func__,
|
||||
urb->actual_length, data);
|
||||
tty = port->port.tty;
|
||||
tty = tty_port_tty_get(&port->port);
|
||||
|
||||
if (urb->actual_length) {
|
||||
tty_buffer_request_room(tty, urb->actual_length);
|
||||
|
@ -362,6 +361,7 @@ static void empeg_read_bulk_callback(struct urb *urb)
|
|||
tty_flip_buffer_push(tty);
|
||||
bytes_in += urb->actual_length;
|
||||
}
|
||||
tty_kref_put(tty);
|
||||
|
||||
/* Continue trying to always read */
|
||||
usb_fill_bulk_urb(
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue