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);