n_tty.c isn't SMP (2.2.11) ready !?

Lars Prieske (prieske@planet.de)
Fri, 20 Aug 1999 13:47:28 -0000 (GMT)


It seems that n_tty.c work not correctly under SMP kernel 2.2.11 and higher
baudrate (460.2kBaud and higher). The functions n_tty_receive_buf() and
copy_from_read_buf() change the counter tty->read_cnt at the same time
potentially. The difference between tty->read_head and tty->read_tail must be
equal to tty->read_cnt!? After some minutes i start my communication program,
this difference is equal to tty->read_cnt at begin of n_tty_receive_buf(), but
at end of this function isn't equal 8-?. I see that copy_from_read_buf() is
called during n_tty_receive_buf(). n_tty_receive_buf() is called from
interrupt service routine (serial.c).
I set the type of tty->read_cnt to atomic_t and all operations of this counter
to atomic pendants. It seems that solve the problem. It's correct?
Has anybody the email address of Theodore Ts'o?

Lars

My hardware:
DualPentiumII 400MHz, 256MByte RS422-Card with 16550A etc.
SuSE Linux 6.0, kernel 2.2.11

-
To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
the body of a message to majordomo@vger.rutgers.edu
Please read the FAQ at http://www.tux.org/lkml/