Re: serial port regression caused by "Char: tty_ioctl, use wait_event_interruptible_timeout" patch

From: Rick Warner
Date: Tue Feb 05 2008 - 16:33:17 EST


This modification solved my problem. Will this change go into mainline, or
will we need to maintain our own branch of the kernel to keep this working?

Thanks,
Rick

On Tuesday 05 February 2008, Paul Fulghum wrote:
> Paul Fulghum wrote:
> > Instead of reverting the patch can you try modifying
> > this part of the patch:
> >
> > + if (wait_event_interruptible_timeout(tty->write_wait,
> > + !tty->driver->chars_in_buffer(tty), timeout))
> > + return;
> >
> > by changing it to:
> >
> > + if (wait_event_interruptible_timeout(tty->write_wait,
> > + !tty->driver->chars_in_buffer(tty), timeout) < 0)
> > + return;
> >
> > It looks like the patch changed the behavior of
> > tty_wait_until_sent by not calling the driver
> > specific wait_until_sent if a timeout occurs.
>
> I mispoke, the patch changed the behavior by not
> calling the driver specific wait_until_sent if
> the condition is true.
>
> Original behavior:
> call driver->wait_until_sent() on
> timeout or true condition
> (skip for signal)
>
> Patch behavior:
> call driver->wait_until_sent() only
> on timeout (rc == 0)
> (skip for signal or true)
>
> By modifying the patch as described above,
> the original behavior is restored.



--
Richard Warner
Lead Systems Integrator
Microway, Inc
(508)732-5517
--
To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
the body of a message to majordomo@xxxxxxxxxxxxxxx
More majordomo info at http://vger.kernel.org/majordomo-info.html
Please read the FAQ at http://www.tux.org/lkml/