Thank you for your contribution! Sashiko AI review found 1 potential issue(s) 
to consider:

Pre-existing issues:
- [High] Pre-existing memory leak of an I2C adapter device reference in 
i2c_acpi_new_device_by_fwnode().
--

commit 66de974c089b4da323236a8e423198078a9b4d70
Author: Ma Ke <[email protected]>

drm/i915/dsi: fix i2c adapter reference leak in i2c_adapter_lookup()

This commit fixes an I2C adapter device reference leak in
i2c_adapter_lookup() by adding a put_device() call to release the
reference acquired by i2c_acpi_find_adapter_by_handle().

> diff --git a/drivers/gpu/drm/i915/display/intel_dsi_vbt.c 
> b/drivers/gpu/drm/i915/display/intel_dsi_vbt.c
> index fe12041e913cd..2097c5d17cb7a 100644
> --- a/drivers/gpu/drm/i915/display/intel_dsi_vbt.c
> +++ b/drivers/gpu/drm/i915/display/intel_dsi_vbt.c
> @@ -460,8 +460,10 @@ static int i2c_adapter_lookup(struct acpi_resource 
> *ares, void *data)
>               return 1;
>  
>       adapter = i2c_acpi_find_adapter_by_handle(adapter_handle);
> -     if (adapter)
> +     if (adapter) {
>               intel_dsi->i2c_bus_num = adapter->nr;
> +             put_device(&adapter->dev);
> +     }
>  
>       return 1;
>  }

[Severity: High]
This is a pre-existing issue, but while reviewing this fix, it appears the
same leak exists in the I2C ACPI core.

Does i2c_acpi_new_device_by_fwnode() in drivers/i2c/i2c-core-acpi.c also need
to release the adapter reference?

drivers/i2c/i2c-core-acpi.c:i2c_acpi_new_device_by_fwnode() {
    ...
        adapter = i2c_acpi_find_adapter_by_handle(lookup.adapter_handle);
        if (!adapter)
                return ERR_PTR(-EPROBE_DEFER);

        return i2c_new_client_device(adapter, info);
}

The adapter reference is acquired through bus_find_device() internally but
never released.

Since i2c_del_adapter() waits for the adapter's reference count to reach zero
via wait_for_completion(&adap->dev_released), could this leak cause any
subsequent attempts to unbind or remove the underlying I2C adapter to hang
forever in uninterruptible sleep, blocking system power management
transitions?

-- 
Sashiko AI review ยท 
https://sashiko.dev/#/patchset/[email protected]?part=1

Reply via email to