Re: [PATCHv2 3/7] ACPI: button: Use input_device_enabled() helper

Rafael J. Wysocki
2020-05-18T12:40:53Z

On Friday, May 15, 2020 6:53:27 PM CEST Andrzej Pietrasiewicz wrote:
> A new helper is available, so use it. Inspecting input device's 'users'
> member should be done under device's mutex, so add appropriate invocations.
>
> Signed-off-by: Andrzej Pietrasiewicz <andrzej.p@collabora.com>
> ---
> drivers/acpi/button.c | 8 ++++++--
> 1 file changed, 6 insertions(+), 2 deletions(-)
>
> diff --git a/drivers/acpi/button.c b/drivers/acpi/button.c
> index 78cfc70cb320..7e081bae48ab 100644
> --- a/drivers/acpi/button.c
> +++ b/drivers/acpi/button.c
> @@ -411,7 +411,7 @@ static void acpi_button_notify(struct acpi_device *device, u32 event)
> input = button->input;
> if (button->type == ACPI_BUTTON_TYPE_LID) {
> mutex_lock(&button->input->mutex);
> - users = button->input->users;
> + users = input_device_enabled(button->input);
> mutex_unlock(&button->input->mutex);
> if (users)
> acpi_lid_update_state(device, true);
> @@ -456,13 +456,17 @@ static int acpi_button_resume(struct device *dev)
> {
> struct acpi_device *device = to_acpi_device(dev);
> struct acpi_button *button = acpi_driver_data(device);
> + struct input_dev *input = button->input;
>
> button->suspended = false;
> - if (button->type == ACPI_BUTTON_TYPE_LID && button->input->users) {
> + mutex_lock(&input->mutex);
> + if (button->type == ACPI_BUTTON_TYPE_LID &&
> + input_device_enabled(input)) {
> button->last_state = !!acpi_lid_evaluate_state(device);
> button->last_time = ktime_get();
> acpi_lid_initialize_state(device);
> }
> + mutex_unlock(&input->mutex);
> return 0;
> }
> #endif
>

This appears to conflate a fix (the introduction of the missing mutex locking)
with adding new functionality through input_device_enabled().

Please do the fix separately in advance so it can be backported.

Thanks!