android_kernel_msm-6.1_noth.../drivers/input/serio
Dmitry Vyukov 218c1f76b8 Input: psmouse - fix data race in __ps2_command
The data race happens on ps2dev->cmdcnt and ps2dev->cmdbuf contents.
__ps2_command reads that data concurrently with the interrupt handler. As
the result, for example, if a response arrives just after the timeout,
__ps2_command can copy out garbage from ps2dev->cmdbuf but then see that
ps2dev->cmdcnt is 0 and return success.

Stop the interrupt handler with serio_pause_rx() before reading the
results.

The data race was found with KernelThreadSanitizer (KTSAN).

Signed-off-by: Dmitry Vyukov <dvyukov@google.com>
Signed-off-by: Dmitry Torokhov <dmitry.torokhov@gmail.com>
2015-09-29 16:08:29 -07:00
..
altera_ps2.c
ambakmi.c Input: ambakmi - fix system PM by converting to modern callbacks 2015-07-16 10:36:08 -07:00
ams_delta_serio.c
apbps2.c
arc_ps2.c
at32psif.c
ct82c710.c
gscps2.c
hil_mlc.c
hp_sdc.c
hp_sdc_mlc.c
hyperv-keyboard.c
i8042-io.h
i8042-ip22io.h
i8042-jazzio.h
i8042-ppcio.h
i8042-snirm.h
i8042-sparcio.h
i8042-unicore32io.h
i8042-x86ia64io.h
i8042.c Input: i8042 - lower log level for "no controller" message 2015-09-05 11:11:48 -07:00
i8042.h
Kconfig
libps2.c Input: psmouse - fix data race in __ps2_command 2015-09-29 16:08:29 -07:00
maceps2.c
Makefile
olpc_apsp.c
parkbd.c Input: serio - fix blocking of parport 2015-09-27 17:32:34 -07:00
pcips2.c
ps2mult.c
q40kbd.c
rpckbd.c
sa1111ps2.c
serio.c
serio_raw.c
serport.c
sun4i-ps2.c
xilinx_ps2.c