mirror of
https://mirrors.bfsu.edu.cn/git/linux.git
synced 2024-12-05 18:14:07 +08:00
USB: tty: sort out the request_room handling for whiteheat
This driver has its own (surplus) backup queue system which wants removing from the receive overflow logic. Do this at the same time as removing the request_room logic Signed-off-by: Alan Cox <alan@linux.intel.com> Signed-off-by: Greg Kroah-Hartman <gregkh@suse.de>
This commit is contained in:
parent
5d3034ab8f
commit
67ccbd6f1a
@ -1492,21 +1492,9 @@ static void rx_data_softint(struct work_struct *work)
|
||||
wrap = list_entry(tmp, struct whiteheat_urb_wrap, list);
|
||||
urb = wrap->urb;
|
||||
|
||||
if (tty && urb->actual_length) {
|
||||
int len = tty_buffer_request_room(tty,
|
||||
urb->actual_length);
|
||||
/* This stuff can go away now I suspect */
|
||||
if (unlikely(len < urb->actual_length)) {
|
||||
spin_lock_irqsave(&info->lock, flags);
|
||||
list_add(tmp, &info->rx_urb_q);
|
||||
spin_unlock_irqrestore(&info->lock, flags);
|
||||
tty_flip_buffer_push(tty);
|
||||
schedule_work(&info->rx_work);
|
||||
goto out;
|
||||
}
|
||||
tty_insert_flip_string(tty, urb->transfer_buffer, len);
|
||||
sent += len;
|
||||
}
|
||||
if (tty && urb->actual_length)
|
||||
sent += tty_insert_flip_string(tty,
|
||||
urb->transfer_buffer, urb->actual_length);
|
||||
|
||||
urb->dev = port->serial->dev;
|
||||
result = usb_submit_urb(urb, GFP_ATOMIC);
|
||||
|
Loading…
Reference in New Issue
Block a user