From: Gene Heskett <gene.heskett@gmail.com>
To: Oliver Neukum <oliver@neukum.org>
Cc: "Antonino Ingargiola" <tritemio@gmail.com>,
"Paul Fulghum" <paulkf@microgate.com>,
"Alan Cox" <alan@lxorguk.ukuu.org.uk>,
linux-usb-users@lists.sourceforge.net,
linux-kernel@vger.kernel.org
Subject: Re: [SOLVED] Serial buffer corruption [was Re: FTDI usb-serial possible bug]
Date: Wed, 9 May 2007 06:42:35 -0400 [thread overview]
Message-ID: <200705090642.35522.gene.heskett@gmail.com> (raw)
In-Reply-To: <200705052035.58782.oliver@neukum.org>
On Saturday 05 May 2007, Oliver Neukum wrote:
>Am Samstag, 5. Mai 2007 20:08 schrieb Antonino Ingargiola:
>> Now I don't want to abuse your kindness, but I (personally) would be
>> *really* interested in a similar fix for the FTDI usb-serial driver,
>> because many measurements I do use an FTDI device.
>
>Does this work?
>
> Regards
> Oliver
>----
>
>--- a/drivers/usb/serial/ftdi_sio.c 2007-05-05 20:21:41.000000000 +0200
>+++ b/drivers/usb/serial/ftdi_sio.c 2007-05-05 20:27:09.000000000 +0200
>@@ -1749,10 +1749,6 @@ static void ftdi_process_read (struct wo
> length = 0;
> }
>
>- if (priv->rx_flags & THROTTLED) {
>- dbg("%s - throttled", __FUNCTION__);
>- break;
>- }
> if (tty_buffer_request_room(tty, length) < length) {
> /* break out & wait for throttling/unthrottling to happen */
> dbg("%s - receive room low", __FUNCTION__);
>@@ -1825,16 +1821,6 @@ static void ftdi_process_read (struct wo
> dbg("%s - incomplete, %d bytes processed, %d remain",
> __FUNCTION__, packet_offset,
> urb->actual_length - packet_offset);
>- /* check if we were throttled while processing */
>- spin_lock_irqsave(&priv->rx_lock, flags);
>- if (priv->rx_flags & THROTTLED) {
>- priv->rx_flags |= ACTUALLY_THROTTLED;
>- spin_unlock_irqrestore(&priv->rx_lock, flags);
>- dbg("%s - deferring remainder until unthrottled",
>- __FUNCTION__);
>- return;
>- }
>- spin_unlock_irqrestore(&priv->rx_lock, flags);
> /* if the port is closed stop trying to read */
> if (port->open_count > 0){
> /* delay processing of remainder */
>@@ -1856,9 +1842,15 @@ static void ftdi_process_read (struct wo
> port->read_urb->transfer_buffer,
> port->read_urb->transfer_buffer_length, ftdi_read_bulk_callback, port);
>
>- result = usb_submit_urb(port->read_urb, GFP_ATOMIC);
>- if (result)
>- err("%s - failed resubmitting read urb, error %d", __FUNCTION__,
> result); + spin_lock_irqsave(&priv->rx_lock, flags);
>+ if (priv->rx_flags & THROTTLED) {
>+ priv->rx_flags |= ACTUALLY_THROTTLED;
>+ } else {
>+ result = usb_submit_urb(port->read_urb, GFP_ATOMIC);
>+ if (result)
>+ err("%s - failed resubmitting read urb, error %d", __FUNCTION__,
> result); + }
>+ spin_unlock_irqrestore(&priv->rx_lock, flags);
> }
>
> return;
>-
Oliver:
Sort of late, but,
I have a couple of kernels building with this patch applied, one with the
sd-0.48 patch where FTDI stuff is a 40+% cpu hog and can't be used, and one
with the cfs-v10 patch where it can be co-erced into working if I screw with
it enough.
I have also been using another serial patch that for unk reasons, also helps
the usb-serial case here, but vger won't let me repost that without stripping
off the headers. That patch has some resemblance to
this:8250-clear-on-read-bits-LSR-MSR where I usually replace spaces with
dashes so I don't have to use "to surround the name" in my scripts.
So these test kernels will have both patches.
I'll let you know how they work later this morning.
--
Cheers, Gene
"There are four boxes to be used in defense of liberty:
soap, ballot, jury, and ammo. Please use in that order."
-Ed Howdershelt (Author)
Oh my GOD -- the SUN just fell into YANKEE STADIUM!!
next prev parent reply other threads:[~2007-05-09 10:42 UTC|newest]
Thread overview: 59+ messages / expand[flat|nested] mbox.gz Atom feed top
2007-05-04 8:38 [SOLVED] Serial buffer corruption [was Re: FTDI usb-serial possible bug] Antonino Ingargiola
2007-05-04 8:49 ` Oliver Neukum
[not found] ` <5486cca80705040229g53933671m658bd028cadca155@mail.gmail.com>
2007-05-04 9:33 ` Antonino Ingargiola
2007-05-04 13:41 ` Oliver Neukum
2007-05-04 14:45 ` Paul Fulghum
2007-05-04 14:56 ` Paul Fulghum
2007-05-04 14:49 ` Paul Fulghum
2007-05-04 16:04 ` Antonino Ingargiola
2007-05-04 16:56 ` Antonino Ingargiola
2007-05-04 18:02 ` Paul Fulghum
2007-05-04 17:13 ` Antonino Ingargiola
2007-05-04 17:20 ` Paul Fulghum
2007-05-04 17:25 ` Antonino Ingargiola
2007-05-04 17:41 ` Paul Fulghum
2007-05-04 18:46 ` Antonino Ingargiola
2007-05-04 19:06 ` Antonino Ingargiola
2007-05-04 19:49 ` Paul Fulghum
2007-05-04 21:21 ` Antonino Ingargiola
2007-05-04 10:57 ` Paul Fulghum
2007-05-05 9:53 ` Antonino Ingargiola
2007-05-05 9:56 ` Antonino Ingargiola
2007-05-05 10:19 ` Antonino Ingargiola
2007-05-04 23:30 ` Paul Fulghum
2007-05-05 8:26 ` Paul Fulghum
2007-05-05 15:11 ` Antonino Ingargiola
2007-05-05 16:43 ` Paul Fulghum
2007-05-05 16:08 ` Paul Fulghum
2007-05-05 16:15 ` Paul Fulghum
2007-05-05 16:26 ` Antonino Ingargiola
2007-05-05 16:58 ` Antonino Ingargiola
2007-05-05 17:04 ` Paul Fulghum
2007-05-05 18:08 ` Antonino Ingargiola
2007-05-05 18:35 ` Oliver Neukum
2007-05-06 7:06 ` Antonino Ingargiola
2007-05-09 9:53 ` Antonino Ingargiola
2007-05-09 10:42 ` Gene Heskett [this message]
2007-05-09 11:02 ` Gene Heskett
2007-05-09 12:00 ` Gene Heskett
2007-05-05 16:36 ` Alan Cox
2007-05-05 16:54 ` Oliver Neukum
2007-05-05 21:49 ` Alan Cox
2007-05-05 18:07 ` Oliver Neukum
2007-05-05 21:52 ` Alan Cox
2007-05-06 7:29 ` Antonino Ingargiola
2007-05-06 12:28 ` Alan Cox
2007-05-06 16:39 ` Antonino Ingargiola
2007-05-06 16:46 ` Alan Cox
2007-05-06 21:51 ` [Linux-usb-users] " Alan Stern
2007-05-07 8:07 ` Antonino Ingargiola
2007-05-06 14:35 ` Paul Fulghum
2007-05-07 9:11 ` [Linux-usb-users] " Diego Zuccato
2007-05-07 16:34 ` Alan Stern
2007-05-07 16:51 ` Oliver Neukum
2007-05-07 18:25 ` Alan Stern
2007-05-07 17:58 ` Stephen Beaver
2007-05-06 14:49 ` Paul Fulghum
2007-05-05 16:46 ` Oliver Neukum
2007-05-05 16:56 ` Paul Fulghum
2007-05-05 17:09 ` Antonino Ingargiola
Reply instructions:
You may reply publicly to this message via plain-text email
using any one of the following methods:
* Save the following mbox file, import it into your mail client,
and reply-to-all from there: mbox
Avoid top-posting and favor interleaved quoting:
https://en.wikipedia.org/wiki/Posting_style#Interleaved_style
* Reply using the --to, --cc, and --in-reply-to
switches of git-send-email(1):
git send-email \
--in-reply-to=200705090642.35522.gene.heskett@gmail.com \
--to=gene.heskett@gmail.com \
--cc=alan@lxorguk.ukuu.org.uk \
--cc=linux-kernel@vger.kernel.org \
--cc=linux-usb-users@lists.sourceforge.net \
--cc=oliver@neukum.org \
--cc=paulkf@microgate.com \
--cc=tritemio@gmail.com \
/path/to/YOUR_REPLY
https://kernel.org/pub/software/scm/git/docs/git-send-email.html
* If your mail client supports setting the In-Reply-To header
via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line
before the message body.
This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.