It seems that I cannot use serial console in newest kernels.
do_tty_hangup() works like this:
filp->f_op = &hung_up_tty_fops; // <<<< FOR tty_hung_up_p()
......
/*
* If one of the devices matches a console pointer, we
* cannot just call hangup() because that will cause
* tty->count and state->count to go out of sync.
* So we just call close() the right number of times.
*/
if (cons_filp) {
if (tty->driver.close)
for (n = 0; n < closecount; n++)
tty->driver.close(tty, cons_filp);
} else if (tty->driver.hangup)
(tty->driver.hangup)(tty);
zs_close() and other serial drivers do like this in the begining:
if (tty_hung_up_p(filp))
return;
Thus counters do not get updated, and info->tty has a bad pointer.
If you press a key in the right moment you get an Oops.
The picture is clear but I do not know what to do with it.
I wrote Ted but I suspect he will not pay much attention to
this triffle (not many people use a serial console). Can a
major developer make a suggestion? Eddie, Jakub?
--Pete
-
To unsubscribe from this list: send the line "unsubscribe sparclinux" in
the body of the message to [EMAIL PROTECTED]