<feed xmlns='http://www.w3.org/2005/Atom'>
<title>linux-toradex.git/drivers/tty/vt, branch v4.4.93</title>
<subtitle>Linux kernel for Apalis and Colibri modules</subtitle>
<link rel='alternate' type='text/html' href='https://git.toradex.cn/cgit/linux-toradex.git/'/>
<entry>
<title>vt: fix unchecked __put_user() in tioclinux ioctls</title>
<updated>2017-07-21T05:44:57+00:00</updated>
<author>
<name>Adam Borowski</name>
<email>kilobyte@angband.pl</email>
</author>
<published>2017-06-03T07:35:06+00:00</published>
<link rel='alternate' type='text/html' href='https://git.toradex.cn/cgit/linux-toradex.git/commit/?id=050b074e228523d239e47576606be3c0de5dfa00'/>
<id>050b074e228523d239e47576606be3c0de5dfa00</id>
<content type='text'>
commit 6987dc8a70976561d22450b5858fc9767788cc1c upstream.

Only read access is checked before this call.

Actually, at the moment this is not an issue, as every in-tree arch does
the same manual checks for VERIFY_READ vs VERIFY_WRITE, relying on the MMU
to tell them apart, but this wasn't the case in the past and may happen
again on some odd arch in the future.

If anyone cares about 3.7 and earlier, this is a security hole (untested)
on real 80386 CPUs.

Signed-off-by: Adam Borowski &lt;kilobyte@angband.pl&gt;
Signed-off-by: Greg Kroah-Hartman &lt;gregkh@linuxfoundation.org&gt;

</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
commit 6987dc8a70976561d22450b5858fc9767788cc1c upstream.

Only read access is checked before this call.

Actually, at the moment this is not an issue, as every in-tree arch does
the same manual checks for VERIFY_READ vs VERIFY_WRITE, relying on the MMU
to tell them apart, but this wasn't the case in the past and may happen
again on some odd arch in the future.

If anyone cares about 3.7 and earlier, this is a security hole (untested)
on real 80386 CPUs.

Signed-off-by: Adam Borowski &lt;kilobyte@angband.pl&gt;
Signed-off-by: Greg Kroah-Hartman &lt;gregkh@linuxfoundation.org&gt;

</pre>
</div>
</content>
</entry>
<entry>
<title>vt: fix Scroll Lock LED trigger name</title>
<updated>2017-01-09T07:07:47+00:00</updated>
<author>
<name>Maciej S. Szmigiero</name>
<email>mail@maciej.szmigiero.name</email>
</author>
<published>2016-11-15T23:55:57+00:00</published>
<link rel='alternate' type='text/html' href='https://git.toradex.cn/cgit/linux-toradex.git/commit/?id=edf1169bbbaaebba9e0d08cf97004b6c411e0041'/>
<id>edf1169bbbaaebba9e0d08cf97004b6c411e0041</id>
<content type='text'>
commit 31b5929d533f5183972cf57a7844b456ed996f3c upstream.

There is a disagreement between drivers/tty/vt/keyboard.c and
drivers/input/input-leds.c with regard to what is a Scroll Lock LED
trigger name: input calls it "kbd-scrolllock", but vt calls it
"kbd-scrollock" (two l's).
This prevents Scroll Lock LED trigger from binding to this LED by default.

Since it is a scroLL Lock LED, this interface was introduced only about a
year ago and in an Internet search people seem to reference this trigger
only to set it to this LED let's simply rename it to "kbd-scrolllock".

Also, it looks like this was supposed to be changed before this code was
merged: https://lkml.org/lkml/2015/6/9/697 but it was done only on
the input side.

Signed-off-by: Maciej S. Szmigiero &lt;mail@maciej.szmigiero.name&gt;
Acked-by: Samuel Thibault &lt;samuel.thibault@ens-lyon.org&gt;
Signed-off-by: Greg Kroah-Hartman &lt;gregkh@linuxfoundation.org&gt;

</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
commit 31b5929d533f5183972cf57a7844b456ed996f3c upstream.

There is a disagreement between drivers/tty/vt/keyboard.c and
drivers/input/input-leds.c with regard to what is a Scroll Lock LED
trigger name: input calls it "kbd-scrolllock", but vt calls it
"kbd-scrollock" (two l's).
This prevents Scroll Lock LED trigger from binding to this LED by default.

Since it is a scroLL Lock LED, this interface was introduced only about a
year ago and in an Internet search people seem to reference this trigger
only to set it to this LED let's simply rename it to "kbd-scrolllock".

Also, it looks like this was supposed to be changed before this code was
merged: https://lkml.org/lkml/2015/6/9/697 but it was done only on
the input side.

Signed-off-by: Maciej S. Szmigiero &lt;mail@maciej.szmigiero.name&gt;
Acked-by: Samuel Thibault &lt;samuel.thibault@ens-lyon.org&gt;
Signed-off-by: Greg Kroah-Hartman &lt;gregkh@linuxfoundation.org&gt;

</pre>
</div>
</content>
</entry>
<entry>
<title>tty: vt, fix bogus division in csi_J</title>
<updated>2016-11-10T15:36:37+00:00</updated>
<author>
<name>Jiri Slaby</name>
<email>jslaby@suse.cz</email>
</author>
<published>2016-10-03T09:00:17+00:00</published>
<link rel='alternate' type='text/html' href='https://git.toradex.cn/cgit/linux-toradex.git/commit/?id=62fa839b8fff08425bcc6bcdd5533ef4a267aa87'/>
<id>62fa839b8fff08425bcc6bcdd5533ef4a267aa87</id>
<content type='text'>
commit 42acfc6615f47e465731c263bee0c799edb098f2 upstream.

In csi_J(3), the third parameter of scr_memsetw (vc_screenbuf_size) is
divided by 2 inappropriatelly. But scr_memsetw expects size, not
count, because it divides the size by 2 on its own before doing actual
memset-by-words.

So remove the bogus division.

Signed-off-by: Jiri Slaby &lt;jslaby@suse.cz&gt;
Cc: Petr Písař &lt;ppisar@redhat.com&gt;
Fixes: f8df13e0a9 (tty: Clean console safely)
Signed-off-by: Greg Kroah-Hartman &lt;gregkh@linuxfoundation.org&gt;

</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
commit 42acfc6615f47e465731c263bee0c799edb098f2 upstream.

In csi_J(3), the third parameter of scr_memsetw (vc_screenbuf_size) is
divided by 2 inappropriatelly. But scr_memsetw expects size, not
count, because it divides the size by 2 on its own before doing actual
memset-by-words.

So remove the bogus division.

Signed-off-by: Jiri Slaby &lt;jslaby@suse.cz&gt;
Cc: Petr Písař &lt;ppisar@redhat.com&gt;
Fixes: f8df13e0a9 (tty: Clean console safely)
Signed-off-by: Greg Kroah-Hartman &lt;gregkh@linuxfoundation.org&gt;

</pre>
</div>
</content>
</entry>
<entry>
<title>tty: limit terminal size to 4M chars</title>
<updated>2016-11-10T15:36:34+00:00</updated>
<author>
<name>Dmitry Vyukov</name>
<email>dvyukov@google.com</email>
</author>
<published>2016-10-14T13:18:28+00:00</published>
<link rel='alternate' type='text/html' href='https://git.toradex.cn/cgit/linux-toradex.git/commit/?id=00877d139396a19d8fdd5ccfd5ec627f64ac052b'/>
<id>00877d139396a19d8fdd5ccfd5ec627f64ac052b</id>
<content type='text'>
commit 32b2921e6a7461fe63b71217067a6cf4bddb132f upstream.

Size of kmalloc() in vc_do_resize() is controlled by user.
Too large kmalloc() size triggers WARNING message on console.
Put a reasonable upper bound on terminal size to prevent WARNINGs.

Signed-off-by: Dmitry Vyukov &lt;dvyukov@google.com&gt;
CC: David Rientjes &lt;rientjes@google.com&gt;
Cc: One Thousand Gnomes &lt;gnomes@lxorguk.ukuu.org.uk&gt;
Cc: Greg Kroah-Hartman &lt;gregkh@linuxfoundation.org&gt;
Cc: Jiri Slaby &lt;jslaby@suse.com&gt;
Cc: Peter Hurley &lt;peter@hurleysoftware.com&gt;
Cc: linux-kernel@vger.kernel.org
Cc: syzkaller@googlegroups.com
Signed-off-by: Greg Kroah-Hartman &lt;gregkh@linuxfoundation.org&gt;

</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
commit 32b2921e6a7461fe63b71217067a6cf4bddb132f upstream.

Size of kmalloc() in vc_do_resize() is controlled by user.
Too large kmalloc() size triggers WARNING message on console.
Put a reasonable upper bound on terminal size to prevent WARNINGs.

Signed-off-by: Dmitry Vyukov &lt;dvyukov@google.com&gt;
CC: David Rientjes &lt;rientjes@google.com&gt;
Cc: One Thousand Gnomes &lt;gnomes@lxorguk.ukuu.org.uk&gt;
Cc: Greg Kroah-Hartman &lt;gregkh@linuxfoundation.org&gt;
Cc: Jiri Slaby &lt;jslaby@suse.com&gt;
Cc: Peter Hurley &lt;peter@hurleysoftware.com&gt;
Cc: linux-kernel@vger.kernel.org
Cc: syzkaller@googlegroups.com
Signed-off-by: Greg Kroah-Hartman &lt;gregkh@linuxfoundation.org&gt;

</pre>
</div>
</content>
</entry>
<entry>
<title>vt: clear selection before resizing</title>
<updated>2016-11-10T15:36:34+00:00</updated>
<author>
<name>Scot Doyle</name>
<email>lkml14@scotdoyle.com</email>
</author>
<published>2016-10-13T17:12:43+00:00</published>
<link rel='alternate' type='text/html' href='https://git.toradex.cn/cgit/linux-toradex.git/commit/?id=3425e397fb23cc2e8e6fb8f5b8226dcb447e84dd'/>
<id>3425e397fb23cc2e8e6fb8f5b8226dcb447e84dd</id>
<content type='text'>
commit 009e39ae44f4191188aeb6dfbf661b771dbbe515 upstream.

When resizing a vt its selection may exceed the new size, resulting in
an invalid memory access [1]. Clear the selection before resizing.

[1] http://lkml.kernel.org/r/CACT4Y+acDTwy4umEvf5ROBGiRJNrxHN4Cn5szCXE5Jw-d1B=Xw@mail.gmail.com

Reported-and-tested-by: Dmitry Vyukov &lt;dvyukov@google.com&gt;
Signed-off-by: Scot Doyle &lt;lkml14@scotdoyle.com&gt;
Signed-off-by: Greg Kroah-Hartman &lt;gregkh@linuxfoundation.org&gt;

</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
commit 009e39ae44f4191188aeb6dfbf661b771dbbe515 upstream.

When resizing a vt its selection may exceed the new size, resulting in
an invalid memory access [1]. Clear the selection before resizing.

[1] http://lkml.kernel.org/r/CACT4Y+acDTwy4umEvf5ROBGiRJNrxHN4Cn5szCXE5Jw-d1B=Xw@mail.gmail.com

Reported-and-tested-by: Dmitry Vyukov &lt;dvyukov@google.com&gt;
Signed-off-by: Scot Doyle &lt;lkml14@scotdoyle.com&gt;
Signed-off-by: Greg Kroah-Hartman &lt;gregkh@linuxfoundation.org&gt;

</pre>
</div>
</content>
</entry>
<entry>
<title>tty/vt/keyboard: fix OOB access in do_compute_shiftstate()</title>
<updated>2016-07-27T16:47:37+00:00</updated>
<author>
<name>Dmitry Torokhov</name>
<email>dmitry.torokhov@gmail.com</email>
</author>
<published>2016-06-27T21:12:34+00:00</published>
<link rel='alternate' type='text/html' href='https://git.toradex.cn/cgit/linux-toradex.git/commit/?id=7d091e02c94ad10414056a6dc9f37441e4a261fe'/>
<id>7d091e02c94ad10414056a6dc9f37441e4a261fe</id>
<content type='text'>
commit 510cccb5b0c8868a2b302a0ab524da7912da648b upstream.

The size of individual keymap in drivers/tty/vt/keyboard.c is NR_KEYS,
which is currently 256, whereas number of keys/buttons in input device (and
therefor in key_down) is much larger - KEY_CNT - 768, and that can cause
out-of-bound access when we do

	sym = U(key_maps[0][k]);

with large 'k'.

To fix it we should not attempt iterating beyond smaller of NR_KEYS and
KEY_CNT.

Also while at it let's switch to for_each_set_bit() instead of open-coding
it.

Reported-by: Sasha Levin &lt;sasha.levin@oracle.com&gt;
Reviewed-by: Guenter Roeck &lt;linux@roeck-us.net&gt;
Signed-off-by: Dmitry Torokhov &lt;dmitry.torokhov@gmail.com&gt;
Signed-off-by: Greg Kroah-Hartman &lt;gregkh@linuxfoundation.org&gt;

</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
commit 510cccb5b0c8868a2b302a0ab524da7912da648b upstream.

The size of individual keymap in drivers/tty/vt/keyboard.c is NR_KEYS,
which is currently 256, whereas number of keys/buttons in input device (and
therefor in key_down) is much larger - KEY_CNT - 768, and that can cause
out-of-bound access when we do

	sym = U(key_maps[0][k]);

with large 'k'.

To fix it we should not attempt iterating beyond smaller of NR_KEYS and
KEY_CNT.

Also while at it let's switch to for_each_set_bit() instead of open-coding
it.

Reported-by: Sasha Levin &lt;sasha.levin@oracle.com&gt;
Reviewed-by: Guenter Roeck &lt;linux@roeck-us.net&gt;
Signed-off-by: Dmitry Torokhov &lt;dmitry.torokhov@gmail.com&gt;
Signed-off-by: Greg Kroah-Hartman &lt;gregkh@linuxfoundation.org&gt;

</pre>
</div>
</content>
</entry>
<entry>
<title>tty: vt: Fix soft lockup in fbcon cursor blink timer.</title>
<updated>2016-07-27T16:47:37+00:00</updated>
<author>
<name>David Daney</name>
<email>david.daney@cavium.com</email>
</author>
<published>2016-05-17T18:41:04+00:00</published>
<link rel='alternate' type='text/html' href='https://git.toradex.cn/cgit/linux-toradex.git/commit/?id=97c96c43d9ef67f57fde7943a5d8d34daec0432f'/>
<id>97c96c43d9ef67f57fde7943a5d8d34daec0432f</id>
<content type='text'>
commit 1b45996d2ebf9680ccd0db875fc668aa025f40fd upstream.

We are getting somewhat random soft lockups with this signature:

[   86.992215] [&lt;fffffc00080935e0&gt;] el1_irq+0xa0/0x10c
[   86.997082] [&lt;fffffc000841822c&gt;] cursor_timer_handler+0x30/0x54
[   87.002991] [&lt;fffffc000810ec44&gt;] call_timer_fn+0x54/0x1a8
[   87.008378] [&lt;fffffc000810ef88&gt;] run_timer_softirq+0x1c4/0x2bc
[   87.014200] [&lt;fffffc000809077c&gt;] __do_softirq+0x114/0x344
[   87.019590] [&lt;fffffc00080af45c&gt;] irq_exit+0x74/0x98
[   87.024458] [&lt;fffffc00080fac20&gt;] __handle_domain_irq+0x98/0xfc
[   87.030278] [&lt;fffffc000809056c&gt;] gic_handle_irq+0x94/0x190

This is caused by the vt visual_init() function calling into
fbcon_init() with a vc_cur_blink_ms value of zero.  This is a
transient condition, as it is later set to a non-zero value.  But, if
the timer happens to expire while the blink rate is zero, it goes into
an endless loop, and we get soft lockup.

The fix is to initialize vc_cur_blink_ms before calling the con_init()
function.

Signed-off-by: David Daney &lt;david.daney@cavium.com&gt;
Acked-by: Pavel Machek &lt;pavel@ucw.cz&gt;
Tested-by: Ming Lei &lt;ming.lei@canonical.com&gt;
Acked-by: Scot Doyle &lt;lkml14@scotdoyle.com&gt;
Tested-by: Henrique de Moraes Holschuh &lt;hmh@hmh.eng.br&gt;
Signed-off-by: Greg Kroah-Hartman &lt;gregkh@linuxfoundation.org&gt;
Signed-off-by: Greg Kroah-Hartman &lt;gregkh@linuxfoundation.org&gt;

</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
commit 1b45996d2ebf9680ccd0db875fc668aa025f40fd upstream.

We are getting somewhat random soft lockups with this signature:

[   86.992215] [&lt;fffffc00080935e0&gt;] el1_irq+0xa0/0x10c
[   86.997082] [&lt;fffffc000841822c&gt;] cursor_timer_handler+0x30/0x54
[   87.002991] [&lt;fffffc000810ec44&gt;] call_timer_fn+0x54/0x1a8
[   87.008378] [&lt;fffffc000810ef88&gt;] run_timer_softirq+0x1c4/0x2bc
[   87.014200] [&lt;fffffc000809077c&gt;] __do_softirq+0x114/0x344
[   87.019590] [&lt;fffffc00080af45c&gt;] irq_exit+0x74/0x98
[   87.024458] [&lt;fffffc00080fac20&gt;] __handle_domain_irq+0x98/0xfc
[   87.030278] [&lt;fffffc000809056c&gt;] gic_handle_irq+0x94/0x190

This is caused by the vt visual_init() function calling into
fbcon_init() with a vc_cur_blink_ms value of zero.  This is a
transient condition, as it is later set to a non-zero value.  But, if
the timer happens to expire while the blink rate is zero, it goes into
an endless loop, and we get soft lockup.

The fix is to initialize vc_cur_blink_ms before calling the con_init()
function.

Signed-off-by: David Daney &lt;david.daney@cavium.com&gt;
Acked-by: Pavel Machek &lt;pavel@ucw.cz&gt;
Tested-by: Ming Lei &lt;ming.lei@canonical.com&gt;
Acked-by: Scot Doyle &lt;lkml14@scotdoyle.com&gt;
Tested-by: Henrique de Moraes Holschuh &lt;hmh@hmh.eng.br&gt;
Signed-off-by: Greg Kroah-Hartman &lt;gregkh@linuxfoundation.org&gt;
Signed-off-by: Greg Kroah-Hartman &lt;gregkh@linuxfoundation.org&gt;

</pre>
</div>
</content>
</entry>
<entry>
<title>tty: vt, return error when con_startup fails</title>
<updated>2016-06-01T19:15:52+00:00</updated>
<author>
<name>Jiri Slaby</name>
<email>jslaby@suse.cz</email>
</author>
<published>2016-05-03T15:05:54+00:00</published>
<link rel='alternate' type='text/html' href='https://git.toradex.cn/cgit/linux-toradex.git/commit/?id=fce893a5e3f578f9f26a2718156057c84b397f12'/>
<id>fce893a5e3f578f9f26a2718156057c84b397f12</id>
<content type='text'>
commit 6798df4c5fe0a7e6d2065cf79649a794e5ba7114 upstream.

When csw-&gt;con_startup() fails in do_register_con_driver, we return no
error (i.e. 0). This was changed back in 2006 by commit 3e795de763.
Before that we used to return -ENODEV.

So fix the return value to be -ENODEV in that case again.

Fixes: 3e795de763 ("VT binding: Add binding/unbinding support for the VT console")
Signed-off-by: Jiri Slaby &lt;jslaby@suse.cz&gt;
Reported-by: "Dan Carpenter" &lt;dan.carpenter@oracle.com&gt;
Signed-off-by: Greg Kroah-Hartman &lt;gregkh@linuxfoundation.org&gt;

</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
commit 6798df4c5fe0a7e6d2065cf79649a794e5ba7114 upstream.

When csw-&gt;con_startup() fails in do_register_con_driver, we return no
error (i.e. 0). This was changed back in 2006 by commit 3e795de763.
Before that we used to return -ENODEV.

So fix the return value to be -ENODEV in that case again.

Fixes: 3e795de763 ("VT binding: Add binding/unbinding support for the VT console")
Signed-off-by: Jiri Slaby &lt;jslaby@suse.cz&gt;
Reported-by: "Dan Carpenter" &lt;dan.carpenter@oracle.com&gt;
Signed-off-by: Greg Kroah-Hartman &lt;gregkh@linuxfoundation.org&gt;

</pre>
</div>
</content>
</entry>
<entry>
<title>tty: vt: Fix !TASK_RUNNING diagnostic warning from paste_selection()</title>
<updated>2015-07-24T01:08:29+00:00</updated>
<author>
<name>Peter Hurley</name>
<email>peter@hurleysoftware.com</email>
</author>
<published>2015-07-13T00:47:35+00:00</published>
<link rel='alternate' type='text/html' href='https://git.toradex.cn/cgit/linux-toradex.git/commit/?id=61e86cc90af49cecef9c54ccea1f572fbcb695ac'/>
<id>61e86cc90af49cecef9c54ccea1f572fbcb695ac</id>
<content type='text'>
Pasting text with gpm on a VC produced warning [1]. Reset task state
to TASK_RUNNING in the paste_selection() loop, if the loop did not
sleep.

[1]
WARNING: CPU: 6 PID: 1960 at /home/peter/src/kernels/mainline/kernel/sched/core.c:7286 __might_sleep+0x7f/0x90()
do not call blocking ops when !TASK_RUNNING; state=1 set at [&lt;ffffffff8151805e&gt;] paste_selection+0x9e/0x1a0
Modules linked in: btrfs xor raid6_pq ufs qnx4 hfsplus hfs minix ntfs msdos jfs xfs libcrc32c .....
CPU: 6 PID: 1960 Comm: gpm Not tainted 4.1.0-rc7+tty-xeon+debug #rc7+tty
Hardware name: Dell Inc. Precision WorkStation T5400  /0RW203, BIOS A11 04/30/2012
 ffffffff81c9c0a0 ffff8802b0fd3ac8 ffffffff8185778a 0000000000000001
 ffff8802b0fd3b18 ffff8802b0fd3b08 ffffffff8108039a ffffffff82ae8510
 ffffffff81c9ce00 0000000000000015 0000000000000000 0000000000000000
Call Trace:
 [&lt;ffffffff8185778a&gt;] dump_stack+0x4f/0x7b
 [&lt;ffffffff8108039a&gt;] warn_slowpath_common+0x8a/0xc0
 [&lt;ffffffff81080416&gt;] warn_slowpath_fmt+0x46/0x50
 [&lt;ffffffff810ddced&gt;] ? __lock_acquire+0xe2d/0x13a0
 [&lt;ffffffff8151805e&gt;] ? paste_selection+0x9e/0x1a0
 [&lt;ffffffff8151805e&gt;] ? paste_selection+0x9e/0x1a0
 [&lt;ffffffff810ad4ff&gt;] __might_sleep+0x7f/0x90
 [&lt;ffffffff8185f76a&gt;] down_read+0x2a/0xa0
 [&lt;ffffffff810bb1d8&gt;] ? sched_clock_cpu+0xb8/0xe0
 [&lt;ffffffff8150d1dc&gt;] n_tty_receive_buf_common+0x4c/0xba0
 [&lt;ffffffff810dc875&gt;] ? mark_held_locks+0x75/0xa0
 [&lt;ffffffff81861c95&gt;] ? _raw_spin_unlock_irqrestore+0x65/0x80
 [&lt;ffffffff810b49a1&gt;] ? get_parent_ip+0x11/0x50
 [&lt;ffffffff8150dd44&gt;] n_tty_receive_buf2+0x14/0x20
 [&lt;ffffffff81518117&gt;] paste_selection+0x157/0x1a0
 [&lt;ffffffff810b77b0&gt;] ? wake_up_state+0x20/0x20
 [&lt;ffffffff815203f8&gt;] tioclinux+0xb8/0x2c0
 [&lt;ffffffff81515bfe&gt;] vt_ioctl+0xaee/0x11a0
 [&lt;ffffffff810baf75&gt;] ? sched_clock_local+0x25/0x90
 [&lt;ffffffff810bbe11&gt;] ? vtime_account_user+0x91/0xa0
 [&lt;ffffffff8150810c&gt;] tty_ioctl+0x20c/0xe20
 [&lt;ffffffff810bbe11&gt;] ? vtime_account_user+0x91/0xa0
 [&lt;ffffffff810b49a1&gt;] ? get_parent_ip+0x11/0x50
 [&lt;ffffffff810b4a69&gt;] ? preempt_count_sub+0x49/0x50
 [&lt;ffffffff811ab71c&gt;] ? context_tracking_exit+0x5c/0x290
 [&lt;ffffffff811ab71c&gt;] ? context_tracking_exit+0x5c/0x290
 [&lt;ffffffff81248b98&gt;] do_vfs_ioctl+0x318/0x570
 [&lt;ffffffff810dca8d&gt;] ? trace_hardirqs_on+0xd/0x10
 [&lt;ffffffff810dc9b5&gt;] ? trace_hardirqs_on_caller+0x115/0x1e0
 [&lt;ffffffff81254acc&gt;] ? __fget_light+0x6c/0xa0
 [&lt;ffffffff81248e71&gt;] SyS_ioctl+0x81/0xa0
 [&lt;ffffffff81862832&gt;] system_call_fastpath+0x16/0x7a

Signed-off-by: Peter Hurley &lt;peter@hurleysoftware.com&gt;
Signed-off-by: Greg Kroah-Hartman &lt;gregkh@linuxfoundation.org&gt;
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
Pasting text with gpm on a VC produced warning [1]. Reset task state
to TASK_RUNNING in the paste_selection() loop, if the loop did not
sleep.

[1]
WARNING: CPU: 6 PID: 1960 at /home/peter/src/kernels/mainline/kernel/sched/core.c:7286 __might_sleep+0x7f/0x90()
do not call blocking ops when !TASK_RUNNING; state=1 set at [&lt;ffffffff8151805e&gt;] paste_selection+0x9e/0x1a0
Modules linked in: btrfs xor raid6_pq ufs qnx4 hfsplus hfs minix ntfs msdos jfs xfs libcrc32c .....
CPU: 6 PID: 1960 Comm: gpm Not tainted 4.1.0-rc7+tty-xeon+debug #rc7+tty
Hardware name: Dell Inc. Precision WorkStation T5400  /0RW203, BIOS A11 04/30/2012
 ffffffff81c9c0a0 ffff8802b0fd3ac8 ffffffff8185778a 0000000000000001
 ffff8802b0fd3b18 ffff8802b0fd3b08 ffffffff8108039a ffffffff82ae8510
 ffffffff81c9ce00 0000000000000015 0000000000000000 0000000000000000
Call Trace:
 [&lt;ffffffff8185778a&gt;] dump_stack+0x4f/0x7b
 [&lt;ffffffff8108039a&gt;] warn_slowpath_common+0x8a/0xc0
 [&lt;ffffffff81080416&gt;] warn_slowpath_fmt+0x46/0x50
 [&lt;ffffffff810ddced&gt;] ? __lock_acquire+0xe2d/0x13a0
 [&lt;ffffffff8151805e&gt;] ? paste_selection+0x9e/0x1a0
 [&lt;ffffffff8151805e&gt;] ? paste_selection+0x9e/0x1a0
 [&lt;ffffffff810ad4ff&gt;] __might_sleep+0x7f/0x90
 [&lt;ffffffff8185f76a&gt;] down_read+0x2a/0xa0
 [&lt;ffffffff810bb1d8&gt;] ? sched_clock_cpu+0xb8/0xe0
 [&lt;ffffffff8150d1dc&gt;] n_tty_receive_buf_common+0x4c/0xba0
 [&lt;ffffffff810dc875&gt;] ? mark_held_locks+0x75/0xa0
 [&lt;ffffffff81861c95&gt;] ? _raw_spin_unlock_irqrestore+0x65/0x80
 [&lt;ffffffff810b49a1&gt;] ? get_parent_ip+0x11/0x50
 [&lt;ffffffff8150dd44&gt;] n_tty_receive_buf2+0x14/0x20
 [&lt;ffffffff81518117&gt;] paste_selection+0x157/0x1a0
 [&lt;ffffffff810b77b0&gt;] ? wake_up_state+0x20/0x20
 [&lt;ffffffff815203f8&gt;] tioclinux+0xb8/0x2c0
 [&lt;ffffffff81515bfe&gt;] vt_ioctl+0xaee/0x11a0
 [&lt;ffffffff810baf75&gt;] ? sched_clock_local+0x25/0x90
 [&lt;ffffffff810bbe11&gt;] ? vtime_account_user+0x91/0xa0
 [&lt;ffffffff8150810c&gt;] tty_ioctl+0x20c/0xe20
 [&lt;ffffffff810bbe11&gt;] ? vtime_account_user+0x91/0xa0
 [&lt;ffffffff810b49a1&gt;] ? get_parent_ip+0x11/0x50
 [&lt;ffffffff810b4a69&gt;] ? preempt_count_sub+0x49/0x50
 [&lt;ffffffff811ab71c&gt;] ? context_tracking_exit+0x5c/0x290
 [&lt;ffffffff811ab71c&gt;] ? context_tracking_exit+0x5c/0x290
 [&lt;ffffffff81248b98&gt;] do_vfs_ioctl+0x318/0x570
 [&lt;ffffffff810dca8d&gt;] ? trace_hardirqs_on+0xd/0x10
 [&lt;ffffffff810dc9b5&gt;] ? trace_hardirqs_on_caller+0x115/0x1e0
 [&lt;ffffffff81254acc&gt;] ? __fget_light+0x6c/0xa0
 [&lt;ffffffff81248e71&gt;] SyS_ioctl+0x81/0xa0
 [&lt;ffffffff81862832&gt;] system_call_fastpath+0x16/0x7a

Signed-off-by: Peter Hurley &lt;peter@hurleysoftware.com&gt;
Signed-off-by: Greg Kroah-Hartman &lt;gregkh@linuxfoundation.org&gt;
</pre>
</div>
</content>
</entry>
<entry>
<title>tty/vt: Fix the memory leak in visual_init</title>
<updated>2015-07-23T22:11:08+00:00</updated>
<author>
<name>Dongxing Zhang</name>
<email>dongxing.zhang@intel.com</email>
</author>
<published>2015-06-10T07:21:10+00:00</published>
<link rel='alternate' type='text/html' href='https://git.toradex.cn/cgit/linux-toradex.git/commit/?id=08b33249d89700ba555d4ab5cc88714192b8ee46'/>
<id>08b33249d89700ba555d4ab5cc88714192b8ee46</id>
<content type='text'>
If vc-&gt;vc_uni_pagedir_loc is not NULL, its refcount needs to be
decreased before vc_uni_pagedir_loc is re-assigned.

unreferenced object 0xffff88002cdd13b0 (size 512):
  comm "setfont", pid 503, jiffies 4294896503 (age 722.828s)
  hex dump (first 32 bytes):
    40 92 61 2b 00 88 ff ff 00 00 00 00 00 00 00 00  @.a+............
    00 00 00 00 00 00 00 00 a0 ad 61 2b 00 88 ff ff  ..........a+....
  backtrace:
    [&lt;ffffffff817b755e&gt;] kmemleak_alloc+0x4e/0xb0
    [&lt;ffffffff811d4898&gt;] kmem_cache_alloc_trace+0x1c8/0x240
    [&lt;ffffffff814ae7d3&gt;] con_do_clear_unimap.isra.2+0x83/0xe0
    [&lt;ffffffff814ae9b2&gt;] con_clear_unimap+0x22/0x40
    [&lt;ffffffff814a8db8&gt;] vt_ioctl+0xeb8/0x1170
    [&lt;ffffffff8149b458&gt;] tty_ioctl+0x208/0xca0
    [&lt;ffffffff81207858&gt;] do_vfs_ioctl+0x2f8/0x510
    [&lt;ffffffff81207af1&gt;] SyS_ioctl+0x81/0xa0
    [&lt;ffffffff817ca2b2&gt;] system_call_fastpath+0x16/0x75
    [&lt;ffffffffffffffff&gt;] 0xffffffffffffffff
unreferenced object 0xffff88002b619240 (size 256):
  comm "setfont", pid 503, jiffies 4294896503 (age 722.828s)
  hex dump (first 32 bytes):
    90 bc 84 d5 00 88 ff ff 58 85 84 d5 00 88 ff ff  ........X.......
    88 ac 84 d5 00 88 ff ff e0 b1 84 d5 00 88 ff ff  ................
  backtrace:
    [&lt;ffffffff817b755e&gt;] kmemleak_alloc+0x4e/0xb0
    [&lt;ffffffff811d4898&gt;] kmem_cache_alloc_trace+0x1c8/0x240
    [&lt;ffffffff814ae286&gt;] con_insert_unipair+0x86/0x170
    [&lt;ffffffff814af107&gt;] con_set_unimap+0x1b7/0x280
    [&lt;ffffffff814a8d65&gt;] vt_ioctl+0xe65/0x1170
    [&lt;ffffffff8149b458&gt;] tty_ioctl+0x208/0xca0
    [&lt;ffffffff81207858&gt;] do_vfs_ioctl+0x2f8/0x510
    [&lt;ffffffff81207af1&gt;] SyS_ioctl+0x81/0xa0
    [&lt;ffffffff817ca2b2&gt;] system_call_fastpath+0x16/0x75
    [&lt;ffffffffffffffff&gt;] 0xffffffffffffffff

Signed-off-by: Dongxing Zhang &lt;dongxing.zhang@intel.com&gt;
Signed-off-by: Xiaoming Wang &lt;xiaoming.wang@intel.com&gt;
Reviewed-by: Peter Hurley &lt;peter@hurleysoftware.com&gt;
Tested-by: Konstantin Khlebnikov &lt;khlebnikov@yandex-team.ru&gt;
Signed-off-by: Greg Kroah-Hartman &lt;gregkh@linuxfoundation.org&gt;
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
If vc-&gt;vc_uni_pagedir_loc is not NULL, its refcount needs to be
decreased before vc_uni_pagedir_loc is re-assigned.

unreferenced object 0xffff88002cdd13b0 (size 512):
  comm "setfont", pid 503, jiffies 4294896503 (age 722.828s)
  hex dump (first 32 bytes):
    40 92 61 2b 00 88 ff ff 00 00 00 00 00 00 00 00  @.a+............
    00 00 00 00 00 00 00 00 a0 ad 61 2b 00 88 ff ff  ..........a+....
  backtrace:
    [&lt;ffffffff817b755e&gt;] kmemleak_alloc+0x4e/0xb0
    [&lt;ffffffff811d4898&gt;] kmem_cache_alloc_trace+0x1c8/0x240
    [&lt;ffffffff814ae7d3&gt;] con_do_clear_unimap.isra.2+0x83/0xe0
    [&lt;ffffffff814ae9b2&gt;] con_clear_unimap+0x22/0x40
    [&lt;ffffffff814a8db8&gt;] vt_ioctl+0xeb8/0x1170
    [&lt;ffffffff8149b458&gt;] tty_ioctl+0x208/0xca0
    [&lt;ffffffff81207858&gt;] do_vfs_ioctl+0x2f8/0x510
    [&lt;ffffffff81207af1&gt;] SyS_ioctl+0x81/0xa0
    [&lt;ffffffff817ca2b2&gt;] system_call_fastpath+0x16/0x75
    [&lt;ffffffffffffffff&gt;] 0xffffffffffffffff
unreferenced object 0xffff88002b619240 (size 256):
  comm "setfont", pid 503, jiffies 4294896503 (age 722.828s)
  hex dump (first 32 bytes):
    90 bc 84 d5 00 88 ff ff 58 85 84 d5 00 88 ff ff  ........X.......
    88 ac 84 d5 00 88 ff ff e0 b1 84 d5 00 88 ff ff  ................
  backtrace:
    [&lt;ffffffff817b755e&gt;] kmemleak_alloc+0x4e/0xb0
    [&lt;ffffffff811d4898&gt;] kmem_cache_alloc_trace+0x1c8/0x240
    [&lt;ffffffff814ae286&gt;] con_insert_unipair+0x86/0x170
    [&lt;ffffffff814af107&gt;] con_set_unimap+0x1b7/0x280
    [&lt;ffffffff814a8d65&gt;] vt_ioctl+0xe65/0x1170
    [&lt;ffffffff8149b458&gt;] tty_ioctl+0x208/0xca0
    [&lt;ffffffff81207858&gt;] do_vfs_ioctl+0x2f8/0x510
    [&lt;ffffffff81207af1&gt;] SyS_ioctl+0x81/0xa0
    [&lt;ffffffff817ca2b2&gt;] system_call_fastpath+0x16/0x75
    [&lt;ffffffffffffffff&gt;] 0xffffffffffffffff

Signed-off-by: Dongxing Zhang &lt;dongxing.zhang@intel.com&gt;
Signed-off-by: Xiaoming Wang &lt;xiaoming.wang@intel.com&gt;
Reviewed-by: Peter Hurley &lt;peter@hurleysoftware.com&gt;
Tested-by: Konstantin Khlebnikov &lt;khlebnikov@yandex-team.ru&gt;
Signed-off-by: Greg Kroah-Hartman &lt;gregkh@linuxfoundation.org&gt;
</pre>
</div>
</content>
</entry>
</feed>
