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]

Reply via email to