All of lore.kernel.org
 help / color / mirror / Atom feed
From: "Ilpo Järvinen" <ilpo.jarvinen@linux.intel.com>
To: Joe Hattori <joe@pf.is.s.u-tokyo.ac.jp>
Cc: Andrea.Ho@advantech.com.tw, Hans de Goede <hdegoede@redhat.com>,
	 platform-driver-x86@vger.kernel.org
Subject: Re: [PATCH v2] platform/x86: adv_swbutton: use devm_add_action_or_reset() for cleanup
Date: Wed, 11 Dec 2024 15:57:53 +0200 (EET)	[thread overview]
Message-ID: <e0782001-7a4f-e341-4ef8-1072904c9571@linux.intel.com> (raw)
In-Reply-To: <20241211085821.3982351-1-joe@pf.is.s.u-tokyo.ac.jp>

On Wed, 11 Dec 2024, Joe Hattori wrote:

> Current code leaves the device's wakeup enabled in the error path of
> .probe() and .remove(). Also, the registered input device is not
> unregistered. Add a devm_add_action_or_reset() call and cleanup these
> resources in the callback.
> 
> Fixes: 3d904005f686 ("platform/x86: add support for Advantech software defined button")
> Signed-off-by: Joe Hattori <joe@pf.is.s.u-tokyo.ac.jp>
> ---
> Changes in V2:
> - Use devm_add_action_or_reset().
> - Call input_unregister_device().
> ---
>  drivers/platform/x86/adv_swbutton.c | 11 +++++++++++
>  1 file changed, 11 insertions(+)
> 
> diff --git a/drivers/platform/x86/adv_swbutton.c b/drivers/platform/x86/adv_swbutton.c
> index 6fa60f3fc53c..5b07c42adfad 100644
> --- a/drivers/platform/x86/adv_swbutton.c
> +++ b/drivers/platform/x86/adv_swbutton.c
> @@ -44,6 +44,14 @@ static void adv_swbutton_notify(acpi_handle handle, u32 event, void *context)
>  	}
>  }
>  
> +static void adv_swbutton_release(void *__input)
> +{
> +	struct input_dev *input = __input;
> +
> +	input_unregister_device(input);

Better but the input device is managed so the unregister call is 
unnecessary.

devm_input_allocate_device() comment says:

 * Managed input devices do not need to be explicitly unregistered or
 * freed as it will be done automatically when owner device unbinds from
 * its driver (or binding fails). Once managed input device is allocated,
 * it is ready to be set up and registered in the same fashion as regular
 * input device. There are no special devm_input_device_[un]register()
 * variants, regular ones work with both managed and unmanaged devices,
 * should you need them. In most cases however, managed input device need
 * not be explicitly unregistered or freed.

-- 
 i.

> +	device_init_wakeup(input->dev.parent, false);
> +}
> +
>  static int adv_swbutton_probe(struct platform_device *device)
>  {
>  	struct adv_swbutton *button;
> @@ -78,6 +86,9 @@ static int adv_swbutton_probe(struct platform_device *device)
>  
>  	device_init_wakeup(&device->dev, true);
>  
> +	if (devm_add_action_or_reset(&device->dev, adv_swbutton_release, input))
> +		return -ENOMEM;
> +
>  	status = acpi_install_notify_handler(handle,
>  					     ACPI_DEVICE_NOTIFY,
>  					     adv_swbutton_notify,
> 

  reply	other threads:[~2024-12-11 13:57 UTC|newest]

Thread overview: 3+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2024-12-11  8:58 [PATCH v2] platform/x86: adv_swbutton: use devm_add_action_or_reset() for cleanup Joe Hattori
2024-12-11 13:57 ` Ilpo Järvinen [this message]
2024-12-15  1:36   ` Joe Hattori

Reply instructions:

You may reply publicly to this message via plain-text email
using any one of the following methods:

* Save the following mbox file, import it into your mail client,
  and reply-to-all from there: mbox

  Avoid top-posting and favor interleaved quoting:
  https://en.wikipedia.org/wiki/Posting_style#Interleaved_style

* Reply using the --to, --cc, and --in-reply-to
  switches of git-send-email(1):

  git send-email \
    --in-reply-to=e0782001-7a4f-e341-4ef8-1072904c9571@linux.intel.com \
    --to=ilpo.jarvinen@linux.intel.com \
    --cc=Andrea.Ho@advantech.com.tw \
    --cc=hdegoede@redhat.com \
    --cc=joe@pf.is.s.u-tokyo.ac.jp \
    --cc=platform-driver-x86@vger.kernel.org \
    /path/to/YOUR_REPLY

  https://kernel.org/pub/software/scm/git/docs/git-send-email.html

* If your mail client supports setting the In-Reply-To header
  via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line before the message body.
This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.