-
Notifications
You must be signed in to change notification settings - Fork 0
Commit
This commit does not belong to any branch on this repository, and may belong to a fork outside of the repository.
USB: serial gadget: rx path data loss fixes
Update RX path handling in new serial gadget code to cope better with RX blockage: queue every RX packet until its contents can safely be passed up to the ldisc. Most of the RX path work is now done in the RX tasklet, instead of just the final "push to ldisc" step. This addresses some cases of data loss: - A longstanding serial gadget bug: when tty_insert_flip_string() didn't copy the entire buffer, the rest of the characters were dropped! Now that packet stays queued until the rest of its data is pushed to the ldisc. - Another longstanding issue: in the unlikely case that an RX transfer returns data and also reports a fault, that data is no longer discarded. - In the recently added RX throttling logic: it needs to stop pushing data into the TTY layer, instead of just not submitting new USB read requests. When the TTY is throttled long enough, backpressure will eventually make the OUT endpoint NAK. Also: an #ifdef is removed (no longer necessary); and start switching to a better convention for debug messages (prefix them with tty name). Signed-off-by: David Brownell <dbrownell@users.sourceforge.net> Signed-off-by: Greg Kroah-Hartman <gregkh@suse.de>
- Loading branch information
David Brownell
authored and
Greg Kroah-Hartman
committed
Aug 14, 2008
1 parent
e8b2445
commit 937ef73
Showing
1 changed file
with
146 additions
and
90 deletions.
There are no files selected for viewing
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters