Re: any chance of 2.6.0-test*?

Russell King
2003-01-12T17:28:20Z

On Sun, Jan 12, 2003 at 09:05:16AM -0800, Linus Torvalds wrote:
> The only place that looked like it _really_ didn't get the kernel lock was
> apparently tty_open(), which is admittedly a fairly important part of it ;)

chrdev_open() kindly takes the BKL for tty_open() so there isn't an issue
here.

There were, however, parts of the code which were using the global-cli(),
and these merely got converted to local_irq_save() without (iirc) too much
auditing. They're all marked with FIXME in my current sources.

One thing that regularly bugs me about our current tty implementation,
however, is the handling of SIGWINCH. This is sent to the process group
rather than the session. Take the following example:

- you're running an xterm, with a shell inside.
- you're running 3 ssh connections, 2 suspended, one running.
- you resize the xterm

The WINCH signal will be sent to just the one foreground ssh connection.

- you suspend the current ssh.

The shell believes that the terminal is the _old_ size.

- you resume one of the old ssh sessions.

Likewise, ssh doesn't believe the terminal has changed size.

My current "workaround" is to re-tweak the xterm size each time I resume
or suspend an old process.

POSIX (at least signal and general terminal interface sections) seems to
be rather quiet on the behaviour of WINCH.

Are there any reasons why we shouldn't send WINCH to the whole session
rather than just the pgrp associated with the tty?

--
Russell King (rmk@arm.linux.org.uk) The developer of ARM Linux