Re: [RESEND PATCH] platform/x86: ishtp_eclite: fix ACPI device reference leak in probe error path

From: srinivas pandruvada

Date: Mon Jun 22 2026 - 11:04:46 EST


On Mon, 2026-06-22 at 15:03 +0800, Ma Ke wrote:

Why Resend?

I like the first character after ishtp_eclite: to be upper case as the
first version of the driver (Later than convention broke). If you
happen to report for any region, you can change that.

> ecl_ishtp_cl_probe() acquires a reference to an ACPI device via
> acpi_find_eclite_device() but fails to release it in the error path
> when acpi_opregion_init() fails. This results in a reference count
> leak, preventing proper cleanup of the ACPI device.
>

Change is good.

> Calling path: acpi_find_eclite_device() ->
> acpi_dev_get_first_match_dev() -> acpi_dev_get_next_match_dev() ->
> bus_find_device() -> get_device().
>
> Found by code review.
>
> Signed-off-by: Ma Ke <make_ruc2021@xxxxxxx>
> Cc: stable@xxxxxxxxxxxxxxx
> Fixes: 7b6bf51de974 ("platform/x86: Add Intel ishtp eclite driver")

Acked-by: Srinivas Pandruvada <srinivas.pandruvada@xxxxxxxxxxxxxxx>

Thanks,
Srinivas

> ---
>  drivers/platform/x86/intel/ishtp_eclite.c | 5 ++++-
>  1 file changed, 4 insertions(+), 1 deletion(-)
>
> diff --git a/drivers/platform/x86/intel/ishtp_eclite.c
> b/drivers/platform/x86/intel/ishtp_eclite.c
> index 93ac8b2dbf38..bca7e217878b 100644
> --- a/drivers/platform/x86/intel/ishtp_eclite.c
> +++ b/drivers/platform/x86/intel/ishtp_eclite.c
> @@ -600,13 +600,16 @@ static int ecl_ishtp_cl_probe(struct
> ishtp_cl_device *cl_device)
>   rv = acpi_opregion_init(opr_dev);
>   if (rv) {
>   dev_err(cl_data_to_dev(opr_dev), "ACPI opregion init
> failed\n");
> - goto err_exit;
> + goto err_put;
>   }
>  
>   /* Reprobe devices depending on ECLite - battery, fan, etc.
> */
>   acpi_dev_clear_dependencies(opr_dev->adev);
>  
>   return 0;
> +
> +err_put:
> + acpi_dev_put(opr_dev->adev);
>  err_exit:
>   ishtp_set_connection_state(ecl_ishtp_cl,
> ISHTP_CL_DISCONNECTING);
>   ishtp_cl_disconnect(ecl_ishtp_cl);