]> git.baikalelectronics.ru Git - kernel.git/commit
Input: i8042 - enable wakeup on a stable struct device
authorStephen Boyd <swboyd@chromium.org>
Thu, 29 Aug 2019 21:31:05 +0000 (14:31 -0700)
committerDmitry Torokhov <dmitry.torokhov@gmail.com>
Thu, 29 Aug 2019 21:42:11 +0000 (14:42 -0700)
commit40bd1c6e145eb827cfc1b9ecf4531e9e4ae57603
tree69eca6a8bf2d3e9cc1f7a739ab5d7da6135e3a12
parent5ee9dac61d7ef51e5858a8aaa4cbe7468da6c656
Input: i8042 - enable wakeup on a stable struct device

We don't know when the device will be added with device_add() in
serio_add_port() because serio_add_port() is called from a workqueue
that this driver schedules by calling serio_register_port(). The best we
can know is that the device will definitely not have been added yet when
the start callback is called on the serio device.

While it hasn't been shown to be a problem, proactively move the wakeup
enabling calls to the start hook so that we don't race with the
workqueue calling device_add(). This will avoid racy situations where
code tries to add wakeup sysfs attributes for this device from
dpm_sysfs_add() but the path in device_set_wakeup_capable() has already
done so.

Signed-off-by: Stephen Boyd <swboyd@chromium.org>
Signed-off-by: Dmitry Torokhov <dmitry.torokhov@gmail.com>
drivers/input/serio/i8042.c