<feed xmlns='http://www.w3.org/2005/Atom'>
<title>user/sven/linux.git/drivers/input, branch v4.9.40</title>
<subtitle>Linux Kernel
</subtitle>
<id>https://git.stealer.net/cgit.cgi/user/sven/linux.git/atom?h=v4.9.40</id>
<link rel='self' href='https://git.stealer.net/cgit.cgi/user/sven/linux.git/atom?h=v4.9.40'/>
<link rel='alternate' type='text/html' href='https://git.stealer.net/cgit.cgi/user/sven/linux.git/'/>
<updated>2017-07-27T22:08:05Z</updated>
<entry>
<title>Input: i8042 - fix crash at boot time</title>
<updated>2017-07-27T22:08:05Z</updated>
<author>
<name>Chen Hong</name>
<email>chenhong3@huawei.com</email>
</author>
<published>2017-07-02T22:11:10Z</published>
<link rel='alternate' type='text/html' href='https://git.stealer.net/cgit.cgi/user/sven/linux.git/commit/?id=5b50e0e74e2e5f084d18a03f6dedc67cfdb8db49'/>
<id>urn:sha1:5b50e0e74e2e5f084d18a03f6dedc67cfdb8db49</id>
<content type='text'>
commit 340d394a789518018f834ff70f7534fc463d3226 upstream.

The driver checks port-&gt;exists twice in i8042_interrupt(), first when
trying to assign temporary "serio" variable, and second time when deciding
whether it should call serio_interrupt(). The value of port-&gt;exists may
change between the 2 checks, and we may end up calling serio_interrupt()
with a NULL pointer:

BUG: unable to handle kernel NULL pointer dereference at 0000000000000050
IP: [&lt;ffffffff8150feaf&gt;] _spin_lock_irqsave+0x1f/0x40
PGD 0
Oops: 0002 [#1] SMP
last sysfs file:
CPU 0
Modules linked in:

Pid: 1, comm: swapper Not tainted 2.6.32-358.el6.x86_64 #1 QEMU Standard PC (i440FX + PIIX, 1996)
RIP: 0010:[&lt;ffffffff8150feaf&gt;]  [&lt;ffffffff8150feaf&gt;] _spin_lock_irqsave+0x1f/0x40
RSP: 0018:ffff880028203cc0  EFLAGS: 00010082
RAX: 0000000000010000 RBX: 0000000000000000 RCX: 0000000000000000
RDX: 0000000000000282 RSI: 0000000000000098 RDI: 0000000000000050
RBP: ffff880028203cc0 R08: ffff88013e79c000 R09: ffff880028203ee0
R10: 0000000000000298 R11: 0000000000000282 R12: 0000000000000050
R13: 0000000000000000 R14: 0000000000000000 R15: 0000000000000098
FS:  0000000000000000(0000) GS:ffff880028200000(0000) knlGS:0000000000000000
CS:  0010 DS: 0018 ES: 0018 CR0: 000000008005003b
CR2: 0000000000000050 CR3: 0000000001a85000 CR4: 00000000001407f0
DR0: 0000000000000000 DR1: 0000000000000000 DR2: 0000000000000000
DR3: 0000000000000000 DR6: 00000000ffff0ff0 DR7: 0000000000000400
Process swapper (pid: 1, threadinfo ffff88013e79c000, task ffff88013e79b500)
Stack:
ffff880028203d00 ffffffff813de186 ffffffffffffff02 0000000000000000
&lt;d&gt; 0000000000000000 0000000000000000 0000000000000000 0000000000000098
&lt;d&gt; ffff880028203d70 ffffffff813e0162 ffff880028203d20 ffffffff8103b8ac
Call Trace:
&lt;IRQ&gt;
 [&lt;ffffffff813de186&gt;] serio_interrupt+0x36/0xa0
[&lt;ffffffff813e0162&gt;] i8042_interrupt+0x132/0x3a0
[&lt;ffffffff8103b8ac&gt;] ? kvm_clock_read+0x1c/0x20
[&lt;ffffffff8103b8b9&gt;] ? kvm_clock_get_cycles+0x9/0x10
[&lt;ffffffff810e1640&gt;] handle_IRQ_event+0x60/0x170
[&lt;ffffffff8103b154&gt;] ? kvm_guest_apic_eoi_write+0x44/0x50
[&lt;ffffffff810e3d8e&gt;] handle_edge_irq+0xde/0x180
[&lt;ffffffff8100de89&gt;] handle_irq+0x49/0xa0
[&lt;ffffffff81516c8c&gt;] do_IRQ+0x6c/0xf0
[&lt;ffffffff8100b9d3&gt;] ret_from_intr+0x0/0x11
[&lt;ffffffff81076f63&gt;] ? __do_softirq+0x73/0x1e0
[&lt;ffffffff8109b75b&gt;] ? hrtimer_interrupt+0x14b/0x260
[&lt;ffffffff8100c1cc&gt;] ? call_softirq+0x1c/0x30
[&lt;ffffffff8100de05&gt;] ? do_softirq+0x65/0xa0
[&lt;ffffffff81076d95&gt;] ? irq_exit+0x85/0x90
[&lt;ffffffff81516d80&gt;] ? smp_apic_timer_interrupt+0x70/0x9b
[&lt;ffffffff8100bb93&gt;] ? apic_timer_interrupt+0x13/0x20

To avoid the issue let's change the second check to test whether serio is
NULL or not.

Also, let's take i8042_lock in i8042_start() and i8042_stop() instead of
trying to be overly smart and using memory barriers.

Signed-off-by: Chen Hong &lt;chenhong3@huawei.com&gt;
[dtor: take lock in i8042_start()/i8042_stop()]
Signed-off-by: Dmitry Torokhov &lt;dmitry.torokhov@gmail.com&gt;
Signed-off-by: Greg Kroah-Hartman &lt;gregkh@linuxfoundation.org&gt;

</content>
</entry>
<entry>
<title>Input: i8042 - add Fujitsu Lifebook AH544 to notimeout list</title>
<updated>2017-06-29T11:00:29Z</updated>
<author>
<name>Daniel Drake</name>
<email>drake@endlessm.com</email>
</author>
<published>2017-06-20T02:48:52Z</published>
<link rel='alternate' type='text/html' href='https://git.stealer.net/cgit.cgi/user/sven/linux.git/commit/?id=20d8f785f9749a9fb4522ff255a7df60b2314cb2'/>
<id>urn:sha1:20d8f785f9749a9fb4522ff255a7df60b2314cb2</id>
<content type='text'>
commit 817ae460c784f32cd45e60b2b1b21378c3c6a847 upstream.

Without this quirk, the touchpad is not responsive on this product, with
the following message repeated in the logs:

 psmouse serio1: bad data from KBC - timeout

Add it to the notimeout list alongside other similar Fujitsu laptops.

Signed-off-by: Daniel Drake &lt;drake@endlessm.com&gt;
Signed-off-by: Dmitry Torokhov &lt;dmitry.torokhov@gmail.com&gt;
Signed-off-by: Greg Kroah-Hartman &lt;gregkh@linuxfoundation.org&gt;

</content>
</entry>
<entry>
<title>Input: elantech - add Fujitsu Lifebook E546/E557 to force crc_enabled</title>
<updated>2017-06-14T13:06:00Z</updated>
<author>
<name>Ulrik De Bie</name>
<email>ulrik.debie-os@e2big.org</email>
</author>
<published>2017-06-07T17:30:57Z</published>
<link rel='alternate' type='text/html' href='https://git.stealer.net/cgit.cgi/user/sven/linux.git/commit/?id=5aa8f833ca7880d1f8a03516e6e5ccb45eca7019'/>
<id>urn:sha1:5aa8f833ca7880d1f8a03516e6e5ccb45eca7019</id>
<content type='text'>
commit 47eb0c8b4d9eb6368941c6a9bb443f00847a46d7 upstream.

The Lifebook E546 and E557 touchpad were also not functioning and
worked after running:

        echo "1" &gt; /sys/devices/platform/i8042/serio2/crc_enabled

Add them to the list of machines that need this workaround.

Signed-off-by: Ulrik De Bie &lt;ulrik.debie-os@e2big.org&gt;
Reviewed-by: Arjan Opmeer &lt;arjan@opmeer.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>
</entry>
<entry>
<title>Input: i8042 - add Clevo P650RS to the i8042 reset list</title>
<updated>2017-05-03T15:36:38Z</updated>
<author>
<name>Dmitry Torokhov</name>
<email>dmitry.torokhov@gmail.com</email>
</author>
<published>2017-04-13T22:36:31Z</published>
<link rel='alternate' type='text/html' href='https://git.stealer.net/cgit.cgi/user/sven/linux.git/commit/?id=b88e4113250dd9d2789ba64d7136ccf4b49855f4'/>
<id>urn:sha1:b88e4113250dd9d2789ba64d7136ccf4b49855f4</id>
<content type='text'>
commit 7c5bb4ac2b76d2a09256aec8a7d584bf3e2b0466 upstream.

Clevo P650RS and other similar devices require i8042 to be reset in order
to detect Synaptics touchpad.

Reported-by: Paweł Bylica &lt;chfast@gmail.com&gt;
Tested-by: Ed Bordin &lt;edbordin@gmail.com&gt;
Bugzilla: https://bugzilla.kernel.org/show_bug.cgi?id=190301
Signed-off-by: Dmitry Torokhov &lt;dmitry.torokhov@gmail.com&gt;
Signed-off-by: Greg Kroah-Hartman &lt;gregkh@linuxfoundation.org&gt;

</content>
</entry>
<entry>
<title>Input: elantech - add Fujitsu Lifebook E547 to force crc_enabled</title>
<updated>2017-04-27T07:10:38Z</updated>
<author>
<name>Thorsten Leemhuis</name>
<email>linux@leemhuis.info</email>
</author>
<published>2017-04-18T18:14:28Z</published>
<link rel='alternate' type='text/html' href='https://git.stealer.net/cgit.cgi/user/sven/linux.git/commit/?id=11ba522d7929b9c319fd31d95bbc917baad9fe6f'/>
<id>urn:sha1:11ba522d7929b9c319fd31d95bbc917baad9fe6f</id>
<content type='text'>
commit 704de489e0e3640a2ee2d0daf173e9f7375582ba upstream.

Temporary got a Lifebook E547 into my hands and noticed the touchpad
only works after running:

	echo "1" &gt; /sys/devices/platform/i8042/serio2/crc_enabled

Add it to the list of machines that need this workaround.

Signed-off-by: Thorsten Leemhuis &lt;linux@leemhuis.info&gt;
Reviewed-by: Ulrik De Bie &lt;ulrik.debie-os@e2big.org&gt;
Signed-off-by: Dmitry Torokhov &lt;dmitry.torokhov@gmail.com&gt;
Signed-off-by: Greg Kroah-Hartman &lt;gregkh@linuxfoundation.org&gt;

</content>
</entry>
<entry>
<title>Input: xpad - add support for Razer Wildcat gamepad</title>
<updated>2017-04-21T07:31:19Z</updated>
<author>
<name>Cameron Gutman</name>
<email>aicommander@gmail.com</email>
</author>
<published>2017-04-11T03:44:25Z</published>
<link rel='alternate' type='text/html' href='https://git.stealer.net/cgit.cgi/user/sven/linux.git/commit/?id=0ea2dcf1f9e691645c22d9103d699e834a7fb8e6'/>
<id>urn:sha1:0ea2dcf1f9e691645c22d9103d699e834a7fb8e6</id>
<content type='text'>
commit 5376366886251e2f8f248704adb620a4bc4c0937 upstream.

Signed-off-by: Cameron Gutman &lt;aicommander@gmail.com&gt;
Signed-off-by: Dmitry Torokhov &lt;dmitry.torokhov@gmail.com&gt;
Signed-off-by: Greg Kroah-Hartman &lt;gregkh@linuxfoundation.org&gt;

</content>
</entry>
<entry>
<title>Input: gpio_keys - add support for GPIO descriptors</title>
<updated>2017-04-12T10:41:19Z</updated>
<author>
<name>Geert Uytterhoeven</name>
<email>geert+renesas@glider.be</email>
</author>
<published>2017-04-04T19:32:22Z</published>
<link rel='alternate' type='text/html' href='https://git.stealer.net/cgit.cgi/user/sven/linux.git/commit/?id=db7c1706fa6d9d1c2f2ab651814130b60bca26d1'/>
<id>urn:sha1:db7c1706fa6d9d1c2f2ab651814130b60bca26d1</id>
<content type='text'>
[ Upstream commit 5feeca3c1e39c01f9ef5abc94dea94021ccf94fc ]

GPIO descriptors are the preferred way over legacy GPIO numbers
nowadays. Convert the driver to use GPIO descriptors internally but
still allow passing legacy GPIO numbers from platform data to support
existing platforms.

Based on commits 633a21d80b4a2cd6 ("input: gpio_keys_polled: Add support
for GPIO descriptors") and 1ae5ddb6f8837558 ("Input: gpio_keys_polled -
request GPIO pin as input.").

Signed-off-by: Geert Uytterhoeven &lt;geert+renesas@glider.be&gt;
Reviewed-by: Linus Walleij &lt;linus.walleij@linaro.org&gt;
Tested-by: Mika Westerberg &lt;mika.westerberg@linux.intel.com&gt;
Signed-off-by: Dmitry Torokhov &lt;dmitry.torokhov@gmail.com&gt;
Signed-off-by: Sasha Levin &lt;alexander.levin@verizon.com&gt;
Signed-off-by: Greg Kroah-Hartman &lt;gregkh@linuxfoundation.org&gt;
</content>
</entry>
<entry>
<title>Input: sur40 - validate number of endpoints before using them</title>
<updated>2017-03-30T07:41:23Z</updated>
<author>
<name>Johan Hovold</name>
<email>johan@kernel.org</email>
</author>
<published>2017-03-16T18:43:09Z</published>
<link rel='alternate' type='text/html' href='https://git.stealer.net/cgit.cgi/user/sven/linux.git/commit/?id=425823646eaed17448ce23101204973d48f376fb'/>
<id>urn:sha1:425823646eaed17448ce23101204973d48f376fb</id>
<content type='text'>
commit 92461f5d723037530c1f36cce93640770037812c upstream.

Make sure to check the number of endpoints to avoid dereferencing a
NULL-pointer or accessing memory that lie beyond the end of the endpoint
array should a malicious device lack the expected endpoints.

Fixes: bdb5c57f209c ("Input: add sur40 driver for Samsung SUR40... ")
Signed-off-by: Johan Hovold &lt;johan@kernel.org&gt;
Signed-off-by: Dmitry Torokhov &lt;dmitry.torokhov@gmail.com&gt;
Signed-off-by: Greg Kroah-Hartman &lt;gregkh@linuxfoundation.org&gt;

</content>
</entry>
<entry>
<title>Input: kbtab - validate number of endpoints before using them</title>
<updated>2017-03-30T07:41:23Z</updated>
<author>
<name>Johan Hovold</name>
<email>johan@kernel.org</email>
</author>
<published>2017-03-16T18:41:55Z</published>
<link rel='alternate' type='text/html' href='https://git.stealer.net/cgit.cgi/user/sven/linux.git/commit/?id=b1feb4e5aab4e29b9929c696d702d02a789bc8b1'/>
<id>urn:sha1:b1feb4e5aab4e29b9929c696d702d02a789bc8b1</id>
<content type='text'>
commit cb1b494663e037253337623bf1ef2df727883cb7 upstream.

Make sure to check the number of endpoints to avoid dereferencing a
NULL-pointer should a malicious device lack endpoints.

Signed-off-by: Johan Hovold &lt;johan@kernel.org&gt;
Signed-off-by: Dmitry Torokhov &lt;dmitry.torokhov@gmail.com&gt;
Signed-off-by: Greg Kroah-Hartman &lt;gregkh@linuxfoundation.org&gt;

</content>
</entry>
<entry>
<title>Input: cm109 - validate number of endpoints before using them</title>
<updated>2017-03-30T07:41:23Z</updated>
<author>
<name>Johan Hovold</name>
<email>johan@kernel.org</email>
</author>
<published>2017-03-16T18:35:12Z</published>
<link rel='alternate' type='text/html' href='https://git.stealer.net/cgit.cgi/user/sven/linux.git/commit/?id=83d920e464fafb738be14096cd1cf3c983d8bab4'/>
<id>urn:sha1:83d920e464fafb738be14096cd1cf3c983d8bab4</id>
<content type='text'>
commit ac2ee9ba953afe88f7a673e1c0c839227b1d7891 upstream.

Make sure to check the number of endpoints to avoid dereferencing a
NULL-pointer should a malicious device lack endpoints.

Fixes: c04148f915e5 ("Input: add driver for USB VoIP phones with CM109...")
Signed-off-by: Johan Hovold &lt;johan@kernel.org&gt;
Signed-off-by: Dmitry Torokhov &lt;dmitry.torokhov@gmail.com&gt;
Signed-off-by: Greg Kroah-Hartman &lt;gregkh@linuxfoundation.org&gt;

</content>
</entry>
</feed>
