linux/drivers/input
Dmitry Torokhov 3e179d3f1a Input: synaptics - fix crash when enabling pass-through port
[ Upstream commit 08bd5b7c9a ]

When enabling a pass-through port an interrupt might come before psmouse
driver binds to the pass-through port. However synaptics sub-driver
tries to access psmouse instance presumably associated with the
pass-through port to figure out if only 1 byte of response or entire
protocol packet needs to be forwarded to the pass-through port and may
crash if psmouse instance has not been attached to the port yet.

Fix the crash by introducing open() and close() methods for the port and
check if the port is open before trying to access psmouse instance.
Because psmouse calls serio_open() only after attaching psmouse instance
to serio port instance this prevents the potential crash.

Reported-by: Takashi Iwai <tiwai@suse.de>
Fixes: 100e16959c ("Input: libps2 - attach ps2dev instances as serio port's drvdata")
Link: https://bugzilla.suse.com/show_bug.cgi?id=1219522
Cc: stable@vger.kernel.org
Reviewed-by: Takashi Iwai <tiwai@suse.de>
Link: https://lore.kernel.org/r/Z4qSHORvPn7EU2j1@google.com
Signed-off-by: Dmitry Torokhov <dmitry.torokhov@gmail.com>
Signed-off-by: Sasha Levin <sashal@kernel.org>
History 2025-02-27 04:30:15 -08:00
..
gameport Driver core changes for 6.11-rc1 2024-07-25 10:42:22 -07:00
joystick Input: xpad - add support for wooting two he (arm) 2025-02-01 18:39:40 +01:00
keyboard Input: atkbd - map F23 key to support default copilot shortcut 2025-02-01 18:39:39 +01:00
misc Input: bbnsm_pwrkey - add remove hook 2025-02-17 10:05:13 +01:00
mouse Input: synaptics - fix crash when enabling pass-through port 2025-02-27 04:30:15 -08:00
rmi4 move asm/unaligned.h to linux/unaligned.h 2024-10-02 17:23:23 -04:00
serio [tree-wide] finally take no_llseek out 2024-09-27 08:18:43 -07:00
tablet move asm/unaligned.h to linux/unaligned.h 2024-10-02 17:23:23 -04:00
tests Input updates for v6.11-rc0 2024-07-19 16:51:39 -07:00
touchscreen Input updates for v6.12-rc5 2024-11-03 08:35:29 -10:00
apm-power.c treewide: Replace GPLv2 boilerplate/reference with SPDX - rule 500 2019-06-19 17:09:55 +02:00
evbug.c Input: evbug - remove an empty comment block 2021-05-24 21:06:39 -07:00
evdev.c [tree-wide] finally take no_llseek out 2024-09-27 08:18:43 -07:00
ff-core.c Input: ff-core - prefer struct_size over open coded arithmetic 2024-04-30 14:04:31 -07:00
ff-memless.c input: drop empty comment blocks 2022-09-29 16:25:42 -07:00
input-compat.c treewide: Replace GPLv2 boilerplate/reference with SPDX - rule 500 2019-06-19 17:09:55 +02:00
input-compat.h treewide: Replace GPLv2 boilerplate/reference with SPDX - rule 500 2019-06-19 17:09:55 +02:00
input-core-private.h Input: deactivate MT slots when inhibiting or suspending devices 2022-07-20 11:35:13 -07:00
input-leds.c Input: leds - change config symbol dependency for audio mute trigger 2024-03-03 14:46:06 -08:00
input-mt.c Input: MT - limit max slots 2024-07-29 10:44:48 -07:00
input-poller.c Input: use input_device_enabled() 2020-12-02 22:10:33 -08:00
input-poller.h Input: add support for polling to input devices 2019-08-20 12:04:07 -07:00
input.c Input updates for v6.12-rc5 2024-11-03 08:35:29 -10:00
joydev.c [tree-wide] finally take no_llseek out 2024-09-27 08:18:43 -07:00
Kconfig Input: tests - modular KUnit tests should not depend on KUNIT=y 2023-05-02 10:39:00 -07:00
Makefile Input: Add KUnit tests for some of the input core helper functions 2023-04-01 22:47:04 -07:00
matrix-keymap.c Input: matrix-keymap - switch to using __free() cleanup facility 2024-08-29 10:59:30 -07:00
mousedev.c *: convert stream-like files -> stream_open, even if they use noop_llseek 2019-07-14 16:09:19 +03:00
sparse-keymap.c Input: Use fallthrough pseudo-keyword 2020-07-07 11:25:54 -07:00
touchscreen.c Input: touchscreen - avoid bitwise vs logical OR warning 2021-10-15 22:22:54 -07:00
vivaldi-fmap.c Input: add missing MODULE_DESCRIPTION() macros 2024-06-09 14:38:48 -07:00