<feed xmlns='http://www.w3.org/2005/Atom'>
<title>kernel.git/include/linux/tty_driver.h, branch linux-2.6.31.y</title>
<subtitle>Hosts the 0x221E linux distro kernel.
</subtitle>
<id>https://git.0xinfinity.dev/distro/kernel.git/atom?h=linux-2.6.31.y</id>
<link rel='self' href='https://git.0xinfinity.dev/distro/kernel.git/atom?h=linux-2.6.31.y'/>
<link rel='alternate' type='text/html' href='https://git.0xinfinity.dev/distro/kernel.git/'/>
<updated>2009-06-11T15:50:59Z</updated>
<entry>
<title>tty: throttling race fix</title>
<updated>2009-06-11T15:50:59Z</updated>
<author>
<name>Alan Cox</name>
</author>
<published>2009-06-11T11:44:17Z</published>
<link rel='alternate' type='text/html' href='https://git.0xinfinity.dev/distro/kernel.git/commit/?id=38db89799bdf11625a831c5af33938dcb11908b6'/>
<id>urn:sha1:38db89799bdf11625a831c5af33938dcb11908b6</id>
<content type='text'>
The tty throttling code can race due to the lock drops. It takes very high
loads but this has been observed and verified by Rob Duncan.

The basic problem is that on an SMP box we can go

	CPU #1				CPU #2
	need to throttle ?
	suppose we should		buffer space cleared
					are we throttled
					yes ? - unthrottle
	call throttle method

This changeet take the termios lock to protect against this. The termios
lock isn't the initial obvious candidate but many implementations of throttle
methods already need to poke around their own termios structures (and nobody
really locks them against a racing change of flow control).

This does mean that anyone who is setting tty-&gt;low_latency = 1 and then
calling tty_flip_buffer_push from their unthrottle method is going to end up
collapsing in a pile of locks. However we've removed all the known bogus
users of low_latency = 1 and such use isn't safe anyway for other reasons so
catching it would be an improvement.

Signed-off-by: Alan Cox &lt;alan@lxorguk.ukuu.org.uk&gt;
Signed-off-by: Linus Torvalds &lt;torvalds@linux-foundation.org&gt;
</content>
</entry>
<entry>
<title>tty: Correct inline types for tty_driver_kref_get()</title>
<updated>2009-04-07T15:44:04Z</updated>
<author>
<name>Adrian Bunk</name>
</author>
<published>2009-04-07T15:48:07Z</published>
<link rel='alternate' type='text/html' href='https://git.0xinfinity.dev/distro/kernel.git/commit/?id=f786ddd285b4100909a013041d3eee1be9fac4db'/>
<id>urn:sha1:f786ddd285b4100909a013041d3eee1be9fac4db</id>
<content type='text'>
tty_driver_kref_get() should be static inline and not extern inline
(the latter even changed it's semantics in gcc &gt;= 4.3).

Signed-off-by: Adrian Bunk &lt;bunk@kernel.org&gt;
Signed-off-by: Alan Cox &lt;alan@lxorguk.ukuu.org.uk&gt;
Signed-off-by: Linus Torvalds &lt;torvalds@linux-foundation.org&gt;
</content>
</entry>
<entry>
<title>proc tty: remove struct tty_operations::read_proc</title>
<updated>2009-04-01T15:59:10Z</updated>
<author>
<name>Alexey Dobriyan</name>
</author>
<published>2009-03-31T22:19:25Z</published>
<link rel='alternate' type='text/html' href='https://git.0xinfinity.dev/distro/kernel.git/commit/?id=0f043a81ebe84be3576667f04fdda481609e3816'/>
<id>urn:sha1:0f043a81ebe84be3576667f04fdda481609e3816</id>
<content type='text'>
struct tty_operations::proc_fops took it's place and there is one less
create_proc_read_entry() user now!

Signed-off-by: Alexey Dobriyan &lt;adobriyan@gmail.com&gt;
Cc: Alan Cox &lt;alan@lxorguk.ukuu.org.uk&gt;
Signed-off-by: Andrew Morton &lt;akpm@linux-foundation.org&gt;
Signed-off-by: Linus Torvalds &lt;torvalds@linux-foundation.org&gt;
</content>
</entry>
<entry>
<title>proc tty: add struct tty_operations::proc_fops</title>
<updated>2009-04-01T15:59:08Z</updated>
<author>
<name>Alexey Dobriyan</name>
</author>
<published>2009-03-31T22:19:15Z</published>
<link rel='alternate' type='text/html' href='https://git.0xinfinity.dev/distro/kernel.git/commit/?id=ae149b6bec64a09373ba20fce75f8aa6b14b78fd'/>
<id>urn:sha1:ae149b6bec64a09373ba20fce75f8aa6b14b78fd</id>
<content type='text'>
Used for gradual switch of TTY drivers from using -&gt;read_proc which helps
with gradual switch from -&gt;read_proc for the whole tree.

As side effect, fix possible race condition when -&gt;data initialized after
PDE is hooked into proc tree.

-&gt;proc_fops takes precedence over -&gt;read_proc.

Signed-off-by: Alexey Dobriyan &lt;adobriyan@gmail.com&gt;
Cc: Alan Cox &lt;alan@lxorguk.ukuu.org.uk&gt;
Signed-off-by: Andrew Morton &lt;akpm@linux-foundation.org&gt;
Signed-off-by: Linus Torvalds &lt;torvalds@linux-foundation.org&gt;
</content>
</entry>
<entry>
<title>pty: simplify resize</title>
<updated>2009-01-02T18:19:36Z</updated>
<author>
<name>Alan Cox</name>
</author>
<published>2009-01-02T13:43:17Z</published>
<link rel='alternate' type='text/html' href='https://git.0xinfinity.dev/distro/kernel.git/commit/?id=fc6f6238226e6d1248e1967eae2bf556eaf3ac17'/>
<id>urn:sha1:fc6f6238226e6d1248e1967eae2bf556eaf3ac17</id>
<content type='text'>
We have special case logic for resizing pty/tty pairs. We also have a per
driver resize method so for the pty case we should use it.

Signed-off-by: Alan Cox &lt;alan@redhat.com&gt;
Signed-off-by: Linus Torvalds &lt;torvalds@linux-foundation.org&gt;
</content>
</entry>
<entry>
<title>Add an instance parameter devpts interfaces</title>
<updated>2008-10-13T16:51:43Z</updated>
<author>
<name>Sukadev Bhattiprolu</name>
</author>
<published>2008-10-13T09:42:59Z</published>
<link rel='alternate' type='text/html' href='https://git.0xinfinity.dev/distro/kernel.git/commit/?id=15f1a6338ddd4e69fff965d4b3a0e1bfb7a13d9c'/>
<id>urn:sha1:15f1a6338ddd4e69fff965d4b3a0e1bfb7a13d9c</id>
<content type='text'>
Pass-in 'inode' or 'tty' parameter to devpts interfaces.  With multiple
devpts instances, these parameters will be used in subsequent patches
to identify the instance of devpts mounted. The parameters also help
simplify devpts implementation.

Changelog[v3]:
	- minor changes due to merge with ttydev updates
	- rename parameters to emphasize they are ptmx or pts inodes
	- pass-in tty_struct * to devpts_pty_kill() (this will help
	  cleanup the get_node() call in a subsequent patch)

Signed-off-by: Sukadev Bhattiprolu &lt;sukadev@us.ibm.com&gt;
Signed-off-by: Alan Cox &lt;alan@redhat.com&gt;
Signed-off-by: Linus Torvalds &lt;torvalds@linux-foundation.org&gt;
</content>
</entry>
<entry>
<title>tty: More driver operations</title>
<updated>2008-10-13T16:51:42Z</updated>
<author>
<name>Alan Cox</name>
</author>
<published>2008-10-13T09:42:19Z</published>
<link rel='alternate' type='text/html' href='https://git.0xinfinity.dev/distro/kernel.git/commit/?id=8b0a88d5912ab549d5adac2c8498ecdaae5319a5'/>
<id>urn:sha1:8b0a88d5912ab549d5adac2c8498ecdaae5319a5</id>
<content type='text'>
We have the lookup operation abstracted which is nice for pty cleanup but
we really want to abstract the add/remove entries as well so that we can
pull the pty code out of the tty core and create a clear defined interface
for the tty driver table.

Signed-off-by: Alan Cox &lt;alan@redhat.com&gt;
Signed-off-by: Linus Torvalds &lt;torvalds@linux-foundation.org&gt;
</content>
</entry>
<entry>
<title>tty: kref the tty driver object</title>
<updated>2008-10-13T16:51:42Z</updated>
<author>
<name>Alan Cox</name>
</author>
<published>2008-10-13T09:42:09Z</published>
<link rel='alternate' type='text/html' href='https://git.0xinfinity.dev/distro/kernel.git/commit/?id=7d7b93c1452f381350dbaf276a63357fa6559e6d'/>
<id>urn:sha1:7d7b93c1452f381350dbaf276a63357fa6559e6d</id>
<content type='text'>
Signed-off-by: Alan Cox &lt;alan@redhat.com&gt;
Signed-off-by: Linus Torvalds &lt;torvalds@linux-foundation.org&gt;
</content>
</entry>
<entry>
<title>tty: Clean up the tty_init_dev changes further</title>
<updated>2008-10-13T16:51:42Z</updated>
<author>
<name>Alan Cox</name>
</author>
<published>2008-10-13T09:42:00Z</published>
<link rel='alternate' type='text/html' href='https://git.0xinfinity.dev/distro/kernel.git/commit/?id=99f1fe189daf8e99a847e420567e49dd7ee2aae7'/>
<id>urn:sha1:99f1fe189daf8e99a847e420567e49dd7ee2aae7</id>
<content type='text'>
Fix up the naming, style and extract some bits of code into the driver
specific code

Signed-off-by: Alan Cox &lt;alan@redhat.com&gt;
Signed-off-by: Linus Torvalds &lt;torvalds@linux-foundation.org&gt;
</content>
</entry>
<entry>
<title>tty: shutdown method</title>
<updated>2008-10-13T16:51:42Z</updated>
<author>
<name>Alan Cox</name>
</author>
<published>2008-10-13T09:41:30Z</published>
<link rel='alternate' type='text/html' href='https://git.0xinfinity.dev/distro/kernel.git/commit/?id=feebed6515a113eeb33919e9557a8b9710ea627c'/>
<id>urn:sha1:feebed6515a113eeb33919e9557a8b9710ea627c</id>
<content type='text'>
Right now there are various drivers that try to use tty-&gt;count to know when
they get the final close. Aristeau Rozanski showed while debugging the vt
sysfs race that this isn't entirely safe.

Instead of driver side tricks to work around this introduce a shutdown which
is called when the tty is being destructed. This also means that the shutdown
method is tied into the refcounting.

Use this to rework the console close/sysfs logic.

Remove lots of special case code from the tty core code. The pty code can now
have a shutdown() method that replaces the special case hackery in the tree
free up paths.

Signed-off-by: Alan Cox &lt;alan@redhat.com&gt;
Signed-off-by: Linus Torvalds &lt;torvalds@linux-foundation.org&gt;
</content>
</entry>
</feed>
