Re: serial port regression caused by "Char: tty_ioctl, use wait_event_interruptible_timeout"patch
From: Paul Fulghum
Date: Tue Feb 05 2008 - 15:19:19 EST
Rick Warner wrote:
I narrowed down the problem doing a binary search on git snapshots between .22
and .23, and found the breakage between git6 and git7. Further isolating it
found the patch mentioned in the subject to be the cause. I reversed the
patch in the .23 source and it now works properly.
Should the code be reverted back as I did, or is there something I should
change in our userspace code that reads from the serial port to correct it
instead?
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.
--
Paul Fulghum
Microgate Systems, Ltd.
--
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/