Re: 2.6.9-rc2-mm3

From: Russell King
Date: Fri Sep 24 2004 - 14:46:51 EST


On Fri, Sep 24, 2004 at 02:15:28PM -0500, Paul Fulghum wrote:
> The core purpose of tty_termios_baud_rate() is
> 'read only': returning a value from a table referenced
> by an index in the termios structure.
>
> It currently also performs a sanity check for
> the index and adjusts the index if it is out of bounds.
> I assume the lock is held to protect this
> possible write access to the termios structure.
>
> Would it not make sense to move the sanity check
> to change_termios, which would then allow removal
> of the locks from tty_termios_baud_rate()?
> (which also removes the deadlock)

Well, this is not the only place where the termios can be changed.
Drivers can change it in their set_termios method, and are in fact
required to do so for POSIX compliance.

IOW, any feature which drivers are unable to alter needs to
"unsettable". Eg, a port supporting only 8 bit data transmission
must not report in termios that it is set to 7 bit data transmission.

Unfortunately the way the tty layer currently goes about setting
termios settings does not lend itself well to conforming to that.

--
Russell King
Linux kernel 2.6 ARM Linux - http://www.arm.linux.org.uk/
maintainer of: 2.6 PCMCIA - http://pcmcia.arm.linux.org.uk/
2.6 Serial core
-
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/