Re: PROBLEM: Race condition in tty buffer's function flush_to_ldisc().
From: Ilya Zykov
Date: Mon Nov 07 2011 - 07:20:21 EST
Alan Cox wrote:
> On Mon, 07 Nov 2011 15:14:34 +0400
> Ilya Zykov <ilya@xxxxxxx> wrote:
>
>> Function flush_to_ldisc() call disc->ops->receive_buf(),
>> without tty->buf.lock and with TTY_FLUSHING bit set.
>
> flush_to_ldisc is single threaded for a given tty. If you fail to
> ensure that is the case everything breaks.
I think so. But if add in flush_to_ldisc():
if (!test_and_set_bit(TTY_FLUSHING, &tty->flags)) {
.....
} else
prink...
In my syslog appear this prink on pty devices.
>
> What cases does this occur ?
>
> Also for the other patches do you have benchmarks yet ?
>
> Alan
>
--
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/