Guenter Roeck
61a8c3372a
Input: elants_i2c - avoid divide by 0 errors on bad touchscreen data
commit 1c3415a06b1016a596bfe59e0cfee56c773aa958 upstream.
The following crash may be seen if bad data is received from the
touchscreen.
[ 2189.425150] elants_i2c i2c-ELAN0001:00: unknown packet ff ff ff ff
[ 2189.430738] divide error: 0000 [#1] PREEMPT SMP
[ 2189.434679] gsmi: Log Shutdown Reason 0x03
[ 2189.434689] Modules linked in: ip6t_REJECT nf_reject_ipv6 rfcomm evdi
uinput uvcvideo cmac videobuf2_vmalloc videobuf2_memops snd_hda_codec_hdmi
i2c_dev videobuf2_core snd_soc_sst_cht_bsw_rt5645 snd_hda_intel
snd_intel_sst_acpi btusb btrtl btbcm btintel bluetooth snd_soc_sst_acpi
snd_hda_codec snd_intel_sst_core snd_hwdep snd_soc_sst_mfld_platform
snd_hda_core snd_soc_rt5645 memconsole_x86_legacy memconsole zram snd_soc_rl6231
fuse ip6table_filter iwlmvm iwlwifi iwl7000_mac80211 cfg80211 iio_trig_sysfs
joydev cros_ec_sensors cros_ec_sensors_core industrialio_triggered_buffer
kfifo_buf industrialio snd_seq_midi snd_seq_midi_event snd_rawmidi snd_seq
snd_seq_device ppp_async ppp_generic slhc tun
[ 2189.434866] CPU: 0 PID: 106 Comm: irq/184-ELAN000 Tainted: G W
3.18.0-13101-g57e8190 #1
[ 2189.434883] Hardware name: GOOGLE Ultima, BIOS Google_Ultima.7287.131.43 07/20/2016
[ 2189.434898] task: ffff88017a0b6d80 ti: ffff88017a2bc000 task.ti: ffff88017a2bc000
[ 2189.434913] RIP: 0010:[<ffffffffbecc48d5>] [<ffffffffbecc48d5>] elants_i2c_irq+0x190/0x200
[ 2189.434937] RSP: 0018:ffff88017a2bfd98 EFLAGS: 00010293
[ 2189.434948] RAX: 0000000000000000 RBX: ffff88017a967828 RCX: ffff88017a9678e8
[ 2189.434962] RDX: 0000000000000000 RSI: 0000000000000246 RDI: 0000000000000000
[ 2189.434975] RBP: ffff88017a2bfdd8 R08: 00000000000003e8 R09: 0000000000000000
[ 2189.434989] R10: 0000000000000000 R11: 000000000044a2bd R12: ffff88017a991800
[ 2189.435001] R13: ffffffffbe8a2a53 R14: ffff88017a0b6d80 R15: ffff88017a0b6d80
[ 2189.435011] FS: 0000000000000000(0000) GS:ffff88017fc00000(0000) knlGS:0000000000000000
[ 2189.435022] CS: 0010 DS: 0000 ES: 0000 CR0: 000000008005003b
[ 2189.435030] CR2: 00007f678d94b000 CR3: 000000003f41a000 CR4: 00000000001007f0
[ 2189.435039] Stack:
[ 2189.435044] ffff88017a2bfda8 ffff88017a9678e8 646464647a2bfdd8 0000000006e09574
[ 2189.435060] 0000000000000000 ffff88017a088b80 ffff88017a921000 ffffffffbe8a2a53
[ 2189.435074] ffff88017a2bfe08 ffffffffbe8a2a73 ffff88017a0b6d80 0000000006e09574
[ 2189.435089] Call Trace:
[ 2189.435101] [<ffffffffbe8a2a53>] ? irq_thread_dtor+0xa9/0xa9
[ 2189.435112] [<ffffffffbe8a2a73>] irq_thread_fn+0x20/0x40
[ 2189.435123] [<ffffffffbe8a2be1>] irq_thread+0x14e/0x222
[ 2189.435135] [<ffffffffbee8cbeb>] ? __schedule+0x3b3/0x57a
[ 2189.435145] [<ffffffffbe8a29aa>] ? wake_threads_waitq+0x2d/0x2d
[ 2189.435156] [<ffffffffbe8a2a93>] ? irq_thread_fn+0x40/0x40
[ 2189.435168] [<ffffffffbe87c385>] kthread+0x10e/0x116
[ 2189.435178] [<ffffffffbe87c277>] ? __kthread_parkme+0x67/0x67
[ 2189.435189] [<ffffffffbee900ac>] ret_from_fork+0x7c/0xb0
[ 2189.435199] [<ffffffffbe87c277>] ? __kthread_parkme+0x67/0x67
[ 2189.435208] Code: ff ff eb 73 0f b6 bb c1 00 00 00 83 ff 03 7e 13 49 8d 7c
24 20 ba 04 00 00 00 48 c7 c6 8a cd 21 bf eb 4d 0f b6 83 c2 00 00 00 99 <f7> ff
83 f8 37 75 15 48 6b f7 37 4c 8d a3 c4 00 00 00 4c 8d ac
[ 2189.435312] RIP [<ffffffffbecc48d5>] elants_i2c_irq+0x190/0x200
[ 2189.435323] RSP <ffff88017a2bfd98>
[ 2189.435350] ---[ end trace f4945345a75d96dd ]---
[ 2189.443841] Kernel panic - not syncing: Fatal exception
[ 2189.444307] Kernel Offset: 0x3d800000 from 0xffffffff81000000
(relocation range: 0xffffffff80000000-0xffffffffbfffffff)
[ 2189.444519] gsmi: Log Shutdown Reason 0x02
The problem was seen with a 3.18 based kernel, but there is no reason
to believe that the upstream code is safe.
Fixes: 66aee90088 ("Input: add support for Elan eKTH I2C touchscreens")
Signed-off-by: Guenter Roeck <linux@roeck-us.net>
Signed-off-by: Dmitry Torokhov <dmitry.torokhov@gmail.com>
Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
|
2017-01-19 20:18:02 +01:00 |
| .. |
|
88pm860x-ts.c
|
input: touchscreen: drop owner assignment from platform_drivers
|
2014-10-20 16:20:41 +02:00 |
|
ad7877.c
|
spi: Drop owner assignment from spi_drivers
|
2015-10-28 10:30:17 +09:00 |
|
ad7879-i2c.c
|
Input: ad7879 - add device tree support
|
2016-03-08 10:51:18 -08:00 |
|
ad7879-spi.c
|
Input: ad7879 - add device tree support
|
2016-03-08 10:51:18 -08:00 |
|
ad7879.c
|
Merge branch 'for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/dtor/input
|
2016-07-27 14:30:41 -07:00 |
|
ad7879.h
|
|
|
|
ads7846.c
|
Input: ads7846 - remove redundant regulator_disable call
|
2016-08-22 14:15:11 -07:00 |
|
ar1021_i2c.c
|
Input: drop owner assignment from i2c_driver
|
2015-07-17 16:57:00 -07:00 |
|
atmel-wm97xx.c
|
input: touchscreen: drop owner assignment from platform_drivers
|
2014-10-20 16:20:41 +02:00 |
|
atmel_mxt_ts.c
|
[media] Input: v4l-touch - add copyright lines
|
2016-09-19 16:26:21 -03:00 |
|
auo-pixcir-ts.c
|
Input: auo-pixcir-ts - simplify function return logic
|
2015-10-02 11:44:18 -07:00 |
|
bcm_iproc_tsc.c
|
Input: bcm_iproc_tsc - use syscon to access shared registers
|
2016-04-06 16:11:56 -07:00 |
|
bu21013_ts.c
|
Input: drop owner assignment from i2c_driver
|
2015-07-17 16:57:00 -07:00 |
|
chipone_icn8318.c
|
Input: icn8318 - use of_touchscreen helpers for inverting / swapping axes
|
2016-07-15 14:50:56 -07:00 |
|
colibri-vf50-ts.c
|
Input: colibri-vf50-ts - add missing #include <linux/of.h>
|
2016-02-09 15:36:22 -08:00 |
|
cy8ctmg110_ts.c
|
Input: drop owner assignment from i2c_driver
|
2015-07-17 16:57:00 -07:00 |
|
cyttsp4_core.c
|
treewide: Fix typos in printk
|
2016-04-28 10:52:28 +02:00 |
|
cyttsp4_core.h
|
|
|
|
cyttsp4_i2c.c
|
Input: cyttsp - use PTR_ERR_OR_ZERO()
|
2015-10-02 11:44:19 -07:00 |
|
cyttsp4_spi.c
|
spi: Drop owner assignment from spi_drivers
|
2015-10-28 10:30:17 +09:00 |
|
cyttsp_core.c
|
Input: of_touchscreen - add support for inverted / swapped axes
|
2016-07-15 14:50:53 -07:00 |
|
cyttsp_core.h
|
Input: cyttsp - switch to using device properties
|
2016-01-27 14:32:48 -08:00 |
|
cyttsp_i2c.c
|
Input: cyttsp - use devres managed resource allocations
|
2016-01-27 14:32:46 -08:00 |
|
cyttsp_i2c_common.c
|
|
|
|
cyttsp_spi.c
|
Input: cyttsp - use devres managed resource allocations
|
2016-01-27 14:32:46 -08:00 |
|
da9034-ts.c
|
input: touchscreen: drop owner assignment from platform_drivers
|
2014-10-20 16:20:41 +02:00 |
|
da9052_tsi.c
|
input: touchscreen: drop owner assignment from platform_drivers
|
2014-10-20 16:20:41 +02:00 |
|
dynapro.c
|
|
|
|
edt-ft5x06.c
|
Input: remove duplicate ft6236 driver
|
2016-08-22 14:16:07 -07:00 |
|
eeti_ts.c
|
Input: touchscreen - use __maybe_unused instead of ifdef around suspend/resume
|
2014-11-02 00:10:07 -07:00 |
|
egalax_ts.c
|
Input: touchscreen - export OF module alias information
|
2015-07-30 11:05:37 -07:00 |
|
egalax_ts_serial.c
|
Input: egalax_ts_serial - fix potential NULL dereference on error
|
2015-12-19 23:44:40 -08:00 |
|
ektf2127.c
|
Input: ektf2127 - mark PM functions as __maybe_unused
|
2016-10-03 16:36:52 -07:00 |
|
elants_i2c.c
|
Input: elants_i2c - avoid divide by 0 errors on bad touchscreen data
|
2017-01-19 20:18:02 +01:00 |
|
elo.c
|
|
|
|
fsl-imx25-tcq.c
|
Input: touchscreen: Add imx25 TCQ driver
|
2016-02-11 15:40:42 +00:00 |
|
fujitsu_ts.c
|
|
|
|
goodix.c
|
Input: goodix - use "inverted_[xy]" flags instead of "rotated_screen"
|
2015-12-17 17:11:56 -08:00 |
|
gunze.c
|
|
|
|
hampshire.c
|
|
|
|
hp680_ts_input.c
|
|
|
|
htcpen.c
|
|
|
|
ili210x.c
|
Input: ili210x - fix permissions on "calibrate" attribute
|
2016-08-02 23:40:41 -07:00 |
|
imx6ul_tsc.c
|
Input: imx6ul_tsc - fix controller name
|
2015-09-19 11:41:54 -07:00 |
|
inexio.c
|
|
|
|
intel-mid-touch.c
|
input: touchscreen: drop owner assignment from platform_drivers
|
2014-10-20 16:20:41 +02:00 |
|
ipaq-micro-ts.c
|
Input: touchscreen - use __maybe_unused instead of ifdef around suspend/resume
|
2014-11-02 00:10:07 -07:00 |
|
jornada720_ts.c
|
Input: jornada720_ts - get rid of mach/irqs.h and mach/hardware.h includes
|
2016-09-10 10:47:48 -07:00 |
|
Kconfig
|
media updates for v4.9-rc1
|
2016-10-11 13:22:22 -07:00 |
|
lpc32xx_ts.c
|
Input: lpc32xx_ts - fix warnings caused by enabling unprepared clock
|
2015-10-17 11:33:05 -07:00 |
|
mainstone-wm97xx.c
|
|
|
|
Makefile
|
Input: add support for Elan eKTF2127 touchscreen controller
|
2016-09-26 20:01:58 -07:00 |
|
max11801_ts.c
|
Input: drop owner assignment from i2c_driver
|
2015-07-17 16:57:00 -07:00 |
|
mc13783_ts.c
|
Input: mc13783_ts - remove deprecated create_singletheread_workqueue
|
2016-08-25 10:11:00 -07:00 |
|
mcs5000_ts.c
|
|
|
|
melfas_mip4.c
|
Input: melfas_mip4 - add ic_name sysfs attribute
|
2016-10-11 16:58:24 -07:00 |
|
migor_ts.c
|
Input: migor-ts - mark PM functions as __maybe_unused
|
2016-05-19 09:35:15 -07:00 |
|
mk712.c
|
|
|
|
mms114.c
|
Input: mms114 - remove unneded semicolons
|
2015-09-19 11:39:03 -07:00 |
|
mtouch.c
|
|
|
|
of_touchscreen.c
|
Input: of_touchscreen - add support for inverted / swapped axes
|
2016-07-15 14:50:53 -07:00 |
|
pcap_ts.c
|
Input: pcap_ts - use to_delayed_work
|
2016-01-02 21:08:53 -08:00 |
|
penmount.c
|
|
|
|
pixcir_i2c_ts.c
|
Input: pixcir_i2c_ts - remove a useless blank line
|
2016-08-22 14:16:50 -07:00 |
|
raydium_i2c_ts.c
|
Input: raydium_i2c_ts - check CRC of incoming packets
|
2016-07-13 17:27:24 -07:00 |
|
rohm_bu21023.c
|
Input: rohm_bu21023 - fix handling of retrying firmware update
|
2016-01-07 09:57:21 -08:00 |
|
s3c2410_ts.c
|
Input: s3c2410_ts - constify platform_device_id
|
2015-05-06 16:56:55 -07:00 |
|
silead.c
|
Input: silead_gsl1680 - use "silead/" prefix for firmware loading
|
2016-09-10 10:49:15 -07:00 |
|
sis_i2c.c
|
Input: add driver for SiS 9200 family I2C touchscreen controllers
|
2016-08-03 00:49:00 -07:00 |
|
st1232.c
|
Input: drop owner assignment from i2c_driver
|
2015-07-17 16:57:00 -07:00 |
|
stmpe-ts.c
|
Input: stmpe-ts - restore kerneldoc
|
2016-03-02 09:40:20 -08:00 |
|
sun4i-ts.c
|
input: convert sun4i-ts to use devm_thermal_zone_of_sensor_register
|
2016-05-17 07:28:26 -07:00 |
|
sur40.c
|
[media] sur40: properly report a single frame rate of 60 FPS
|
2016-08-24 10:07:06 -03:00 |
|
surface3_spi.c
|
Input: surface3_spi - add surface pen support for Surface 3
|
2016-05-27 16:33:34 -07:00 |
|
sx8654.c
|
Input: sx8654 - fix memory allocation check
|
2015-05-13 10:29:33 -07:00 |
|
ti_am335x_tsc.c
|
Input: ti_am335x_tsc - use variable name for sizeof() operator
|
2016-06-01 14:21:11 -07:00 |
|
touchit213.c
|
|
|
|
touchright.c
|
|
|
|
touchwin.c
|
|
|
|
tps6507x-ts.c
|
Input: tps6507x-ts - simplify function return logic
|
2015-10-02 11:44:18 -07:00 |
|
ts4800-ts.c
|
Input: ts4800-ts - add missing of_node_put after calling of_parse_phandle
|
2016-07-15 10:50:12 -07:00 |
|
tsc40.c
|
|
|
|
tsc200x-core.c
|
Merge branch 'next' into for-linus
|
2016-07-26 12:07:15 -07:00 |
|
tsc200x-core.h
|
Input: tsc200x - report proper input_dev name
|
2016-07-20 17:50:24 -07:00 |
|
tsc2004.c
|
Input: tsc200x - report proper input_dev name
|
2016-07-20 17:50:24 -07:00 |
|
tsc2005.c
|
Input: tsc200x - report proper input_dev name
|
2016-07-20 17:50:24 -07:00 |
|
tsc2007.c
|
Input: drop owner assignment from i2c_driver
|
2015-07-17 16:57:00 -07:00 |
|
ucb1400_ts.c
|
Merge branch 'for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/dtor/input
|
2014-12-17 10:06:02 -08:00 |
|
usbtouchscreen.c
|
Input: usbtouchscreen - avoid unresponsive TSC-30 touch screen
|
2015-07-23 14:43:17 -07:00 |
|
w90p910_ts.c
|
input: touchscreen: drop owner assignment from platform_drivers
|
2014-10-20 16:20:41 +02:00 |
|
wacom_i2c.c
|
Input: drop owner assignment from i2c_driver
|
2015-07-17 16:57:00 -07:00 |
|
wacom_w8001.c
|
Input: wacom_w8001 - handle errors from input_mt_init_slots()
|
2016-07-19 11:42:44 -07:00 |
|
wdt87xx_i2c.c
|
Input: wdt87xx_i2c - fix the flash erase issue
|
2016-09-05 10:31:47 -07:00 |
|
wm97xx-core.c
|
Input: wm97xx - remove deprecated create_singletheread_workqueue
|
2016-08-25 10:11:30 -07:00 |
|
wm831x-ts.c
|
input: touchscreen: drop owner assignment from platform_drivers
|
2014-10-20 16:20:41 +02:00 |
|
wm9705.c
|
|
|
|
wm9712.c
|
|
|
|
wm9713.c
|
|
|
|
zforce_ts.c
|
Input: zforce_ts - fix dual touch recognition
|
2016-04-25 14:27:56 -07:00 |
|
zylonite-wm97xx.c
|
|
|