2006-05-25 09:34:07

by Michael Tokarev

[permalink] [raw]
Subject: drivers/char/rocket.c: somewhat broken since 2.6.16

We've an old 8-port ISA rocketport card, which worked for several
years now. And with 2.6.16, it behaves.. strangely.

After some [random] amount of work, some random port of the card
starts to show delayed receiving of incoming characters. Ie, I
turn off/on the modem, connect to the port, hit AT<cr> - nothing
happens. I hit one more <cr> and see first 'A' from the modem. I
hit another <cr>, and see the 'T' from the modem... After hitting
some key several more times, I finally see the whole modem response
(echoing of the command - AT<cr>, followed by OK<cr>). Ie, incoming
(from the modem) chars are displayed only when something goes TO the
modem.

Once the port is turned into this "mode", it just stays here. I tried
to re-load rocket.ko module - it helps. But some more time and it
switches into this strange mode again. Some more time/work, and
another port switches to this mode.. etc.

2.6.15 behaves correctly, at least I'm unable to reproduce the problem
on this kernel. 2.6.16 shows it on a regular basis.

The only real changes to rocket.c during 2.6.16 development cycle was
the following two patches:

http://www.kernel.org/git/?p=linux/kernel/git/torvalds/linux-2.6.git;a=commit;h=33f0f88f1c51ae5c2d593d26960c760ea154c2e2
from Alan Cox, titled "[PATCH] TTY layer buffering revamp", and

http://www.kernel.org/git/?p=linux/kernel/git/torvalds/linux-2.6.git;a=commit;h=1989e20cc1e7491232795f9dac9b745e4329dfd8
from Michal Ostrowski, titled "[PATCH] Fix RocketPort driver",
with (as it seems to be from the diff) is a fix for the first
patch.

I'm trying to use rocket.c from 2.6.15 on a 2.6.16 kernel now,
let's see what will happen... But the thing is, the problem
is difficult to reproduce (sometimes it switches to this crazy
mode very soon, sometimes it works for a week or so - I can't
so far see what can be used to trigger the switch) so.. ugh... ;)

Thanks.

/mjt


2006-05-25 11:05:27

by Alan

[permalink] [raw]
Subject: Re: drivers/char/rocket.c: somewhat broken since 2.6.16

On Iau, 2006-05-25 at 13:34 +0400, Michael Tokarev wrote:
> I'm trying to use rocket.c from 2.6.15 on a 2.6.16 kernel now,
> let's see what will happen...

I imagine it'll break spectacularly as the tty layer handling changed
between the two quite a bit. Do you know if the modem is receving the
characters as you typed and the echo is delayed or vice versa.

I do have one patch for the rocket driver to fix an obscure Oops case
but nothing else. I'm also hoping to help find a way that works for
comtrol and the kernel folks to get a current comtrol driver into the
tree in a way that they can maintain easily.

Please stick the bug into the kernel bugzilla and assign it to me. I'll
do a bit of digging see what is up