Re: [PATCH] Input: synaptics-rmi4 - fix GPF in suspend and resume when unbound
Dmitry Torokhov <[email protected]> Thu, 6 Aug 2026 11:39:41 -0700
| Newsgroups | org.kernel.vger.linux-input,org.kernel.vger.linux-kernel |
|---|---|
| Message-ID | <[email protected]> |
On Wed, Aug 05, 2026 at 10:44:23PM -0700, Dmitry Torokhov wrote: > Transport drivers (such as rmi_i2c and rmi_spi) invoke > rmi_driver_suspend() and rmi_driver_resume() on their child rmi_dev > device during system power management events. However, transport drivers > are fully registered and operational even if the physical RMI driver > failed to bind or probe the rmi_dev device. > > When rmi_driver_suspend() or rmi_driver_resume() is called on an unbound > rmi_dev, dev_get_drvdata() returns NULL. Calling rmi_disable_irq() or > rmi_enable_irq() without driver data attached causes a NULL pointer > dereference and General Protection Fault when attempting to lock > data->enabled_mutex. > > Fix this by checking if driver data is attached to rmi_dev in > rmi_driver_suspend() and rmi_driver_resume(), exiting early if > no driver data is present. Note that better fix would be to have RMI driver implement PM methods (suspend, resume) but that requires more careful planning, especially around RMI-HID. Thanks. -- Dmitry