Re: [PATCH] Input: synaptics - fix crash when enabling pass-through port

Takashi Iwai
2025-01-18T09:33:46Z

On Sat, 18 Jan 2025 09:46:29 +0100,
Takashi Iwai wrote:
>
> On Fri, 17 Jan 2025 18:23:40 +0100,
> Dmitry Torokhov wrote:
> >
> > 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: 100e16959c3c ("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
> > Signed-off-by: Dmitry Torokhov <dmitry.torokhov@gmail.com>
>
> Reviewed-by: Takashi Iwai <tiwai@suse.de>

BTW, backporting this patch to stable kernels wouldn't be trivial; it
needs the recent changes for guard(), too.

Takashi