Messages in this thread | | | Subject | Re: 2.6.9-rc2-mm3 | From | Paul Fulghum <> | Date | Fri, 24 Sep 2004 14:15:28 -0500 |
| |
On Fri, 2004-09-24 at 13:52, Paul Fulghum wrote: > I am seeing this deadlock also. > > tty_termios_lock is acquired in change_termios(), tty_ioctl.c > > change_termios() calls the driver set_termios callback > which in turn calls tty_termios_baud_rate(), tty_io.c > which tries to acquire the lock again.
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)
-- Paul Fulghum paulkf@microgate.com
- To unsubscribe from this list: send the line "unsubscribe linux-kernel" in the body of a message to majordomo@vger.kernel.org More majordomo info at http://vger.kernel.org/majordomo-info.html Please read the FAQ at http://www.tux.org/lkml/
| |