2001-04-11 20:28:12

by Steven Walter

[permalink] [raw]
Subject: [BUG] serial ioctl not returning with 2.4.3

When I try to start "agetty" on my serial line, agetty hangs in an
ioctl; according to strace, this ioctl is "SNDCTL_TMR_STOP". This
doesn't sound right, but that ioctl is defined as _IO('T', 3) if that
makes any more sense.

The reason that this must be a kernel bug is because agetty works
flawlessly in an identically-configured 2.4.2 kernel, and even a 2.4.3
kernel with the debugging tokens defined. I'd be glad to give any help
that I could.
--
-Steven
In a time of universal deceit, telling the truth is a revolutionary act.
-- George Orwell


2001-04-11 20:50:44

by Jeff Garzik

[permalink] [raw]
Subject: Re: [BUG] serial ioctl not returning with 2.4.3

Steven Walter wrote:
>
> When I try to start "agetty" on my serial line, agetty hangs in an
> ioctl; according to strace, this ioctl is "SNDCTL_TMR_STOP". This
> doesn't sound right, but that ioctl is defined as _IO('T', 3) if that
> makes any more sense.
>
> The reason that this must be a kernel bug is because agetty works
> flawlessly in an identically-configured 2.4.2 kernel, and even a 2.4.3
> kernel with the debugging tokens defined. I'd be glad to give any help
> that I could.

I am not sure this is a serial driver bug:

[jgarzik@rum linux_2_4]$ find . -name '*.[ch]'|xargs grep -wn
SNDCTL_TMR_STOP
./arch/sparc64/kernel/ioctl32.c:3503:COMPATIBLE_IOCTL(SNDCTL_TMR_STOP)
./drivers/sound/mpu401.c:1522: case SNDCTL_TMR_STOP:
./drivers/sound/sequencer.c:1352: case SNDCTL_TMR_STOP:
./drivers/sound/sound_timer.c:195: case SNDCTL_TMR_STOP:
./drivers/sound/sys_timer.c:206: case SNDCTL_TMR_STOP:
./include/linux/soundcard.h:165:#define SNDCTL_TMR_STOP
_SIO ('T', 3)

--
Jeff Garzik | Sam: "Mind if I drive?"
Building 1024 | Max: "Not if you don't mind me clawing at the dash
MandrakeSoft | and shrieking like a cheerleader."

2001-04-11 21:12:40

by Russell King

[permalink] [raw]
Subject: Re: [BUG] serial ioctl not returning with 2.4.3

On Wed, Apr 11, 2001 at 04:50:21PM -0400, Jeff Garzik wrote:
> I am not sure this is a serial driver bug:

Some ioctls are reused ;(

#define TCSETSW 0x5403

Its really a TCSETSW ioctl.

> [jgarzik@rum linux_2_4]$ find . -name '*.[ch]'|xargs grep -wn
> SNDCTL_TMR_STOP
> ./arch/sparc64/kernel/ioctl32.c:3503:COMPATIBLE_IOCTL(SNDCTL_TMR_STOP)
> ./drivers/sound/mpu401.c:1522: case SNDCTL_TMR_STOP:
> ./drivers/sound/sequencer.c:1352: case SNDCTL_TMR_STOP:
> ./drivers/sound/sound_timer.c:195: case SNDCTL_TMR_STOP:
> ./drivers/sound/sys_timer.c:206: case SNDCTL_TMR_STOP:
> ./include/linux/soundcard.h:165:#define SNDCTL_TMR_STOP
> _SIO ('T', 3)
>
> --
> Jeff Garzik | Sam: "Mind if I drive?"
> Building 1024 | Max: "Not if you don't mind me clawing at the dash
> MandrakeSoft | and shrieking like a cheerleader."
> -
> To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
> the body of a message to [email protected]
> More majordomo info at http://vger.kernel.org/majordomo-info.html
> Please read the FAQ at http://www.tux.org/lkml/

--

--
Russell King ([email protected]) The developer of ARM Linux
http://www.arm.linux.org.uk/personal/aboutme.html

2001-04-11 22:59:09

by Steven Walter

[permalink] [raw]
Subject: Re: [BUG] serial ioctl not returning with 2.4.3

On Wed, Apr 11, 2001 at 04:50:21PM -0400, Jeff Garzik wrote:
> Steven Walter wrote:
> >
> > When I try to start "agetty" on my serial line, agetty hangs in an
> > ioctl; according to strace, this ioctl is "SNDCTL_TMR_STOP". This
> > doesn't sound right, but that ioctl is defined as _IO('T', 3) if that
> > makes any more sense.
> >
> > The reason that this must be a kernel bug is because agetty works
> > flawlessly in an identically-configured 2.4.2 kernel, and even a 2.4.3
> > kernel with the debugging tokens defined. I'd be glad to give any help
> > that I could.
>
> I am not sure this is a serial driver bug:
>
> [jgarzik@rum linux_2_4]$ find . -name '*.[ch]'|xargs grep -wn
> SNDCTL_TMR_STOP
> ./arch/sparc64/kernel/ioctl32.c:3503:COMPATIBLE_IOCTL(SNDCTL_TMR_STOP)
> ./drivers/sound/mpu401.c:1522: case SNDCTL_TMR_STOP:
> ./drivers/sound/sequencer.c:1352: case SNDCTL_TMR_STOP:
> ./drivers/sound/sound_timer.c:195: case SNDCTL_TMR_STOP:
> ./drivers/sound/sys_timer.c:206: case SNDCTL_TMR_STOP:
> ./include/linux/soundcard.h:165:#define SNDCTL_TMR_STOP
> _SIO ('T', 3)

It would appear that way, if not for something I neglected to mention in
my first message--the ioctl is on the fd for the opened serial port.
This succeeds in other version of the kernel (as described in my
original posting) and so must somehow be valid for the serial driver.

Any more thoughts? This would seem to be a definite bug in the serial
code.

--
-Steven
In a time of universal deceit, telling the truth is a revolutionary act.
-- George Orwell

2001-04-12 09:16:10

by Russell King

[permalink] [raw]
Subject: Re: [BUG] serial ioctl not returning with 2.4.3

On Wed, Apr 11, 2001 at 05:36:42PM -0500, Steven Walter wrote:
> It would appear that way, if not for something I neglected to mention in
> my first message--the ioctl is on the fd for the opened serial port.
> This succeeds in other version of the kernel (as described in my
> original posting) and so must somehow be valid for the serial driver.
>
> Any more thoughts? This would seem to be a definite bug in the serial
> code.

I've got an old copy of agetty here (about '95) which I'll try on 2.4.

--
Russell King ([email protected]) The developer of ARM Linux
http://www.arm.linux.org.uk/personal/aboutme.html