* [PATCH v2] drm/i915/dsi: fix i2c adapter reference leak in i2c_adapter_lookup()
@ 2026-06-18 11:04 Ma Ke
2026-06-18 11:13 ` Jani Nikula
0 siblings, 1 reply; 2+ messages in thread
From: Ma Ke @ 2026-06-18 11:04 UTC (permalink / raw)
To: jani.nikula, rodrigo.vivi, joonas.lahtinen, tursulin, airlied,
simona, hansg, matthew.d.roper, vivek.kasireddy
Cc: intel-gfx, intel-xe, dri-devel, linux-kernel, akpm, Ma Ke, stable
i2c_adapter_lookup() acquires a reference on the i2c adapter through
i2c_acpi_find_adapter_by_handle() but not releases it. Each
invocation of this ACPI resource callback leaks one device reference,
potentially leading to resource exhaustion over repeated driver
load/unload cycles.
Calling path: i2c_acpi_find_adapter_by_handle() -> bus_find_device()
-> get_device.
Found by code review.
Signed-off-by: Ma Ke <make_ruc2021@163.com>
Cc: stable@vger.kernel.org
Fixes: 8cbf89db2941 ("drm/i915/dsi: Parse the I2C element from the VBT MIPI sequence block (v3)")
---
Changes in v2:
- Changed email to trigger CI, no code change.
---
drivers/gpu/drm/i915/display/intel_dsi_vbt.c | 4 +++-
1 file changed, 3 insertions(+), 1 deletion(-)
diff --git a/drivers/gpu/drm/i915/display/intel_dsi_vbt.c b/drivers/gpu/drm/i915/display/intel_dsi_vbt.c
index fe12041e913c..2097c5d17cb7 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;
}
--
2.43.0
^ permalink raw reply related [flat|nested] 2+ messages in thread
* Re: [PATCH v2] drm/i915/dsi: fix i2c adapter reference leak in i2c_adapter_lookup()
2026-06-18 11:04 [PATCH v2] drm/i915/dsi: fix i2c adapter reference leak in i2c_adapter_lookup() Ma Ke
@ 2026-06-18 11:13 ` Jani Nikula
0 siblings, 0 replies; 2+ messages in thread
From: Jani Nikula @ 2026-06-18 11:13 UTC (permalink / raw)
To: Ma Ke, rodrigo.vivi, joonas.lahtinen, tursulin, airlied, simona,
hansg, matthew.d.roper, vivek.kasireddy
Cc: intel-gfx, intel-xe, dri-devel, linux-kernel, akpm, Ma Ke, stable
On Thu, 18 Jun 2026, Ma Ke <make_ruc2021@163.com> wrote:
> i2c_adapter_lookup() acquires a reference on the i2c adapter through
> i2c_acpi_find_adapter_by_handle() but not releases it. Each
> invocation of this ACPI resource callback leaks one device reference,
> potentially leading to resource exhaustion over repeated driver
> load/unload cycles.
>
> Calling path: i2c_acpi_find_adapter_by_handle() -> bus_find_device()
> -> get_device.
>
> Found by code review.
>
> Signed-off-by: Ma Ke <make_ruc2021@163.com>
> Cc: stable@vger.kernel.org
> Fixes: 8cbf89db2941 ("drm/i915/dsi: Parse the I2C element from the VBT MIPI sequence block (v3)")
> ---
> Changes in v2:
> - Changed email to trigger CI, no code change.
Sorry, that won't do anything. Please just let us deal with it. :)
BR,
Jani.
> ---
> drivers/gpu/drm/i915/display/intel_dsi_vbt.c | 4 +++-
> 1 file changed, 3 insertions(+), 1 deletion(-)
>
> diff --git a/drivers/gpu/drm/i915/display/intel_dsi_vbt.c b/drivers/gpu/drm/i915/display/intel_dsi_vbt.c
> index fe12041e913c..2097c5d17cb7 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;
> }
--
Jani Nikula, Intel
^ permalink raw reply [flat|nested] 2+ messages in thread
end of thread, other threads:[~2026-06-18 11:13 UTC | newest]
Thread overview: 2+ messages (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
2026-06-18 11:04 [PATCH v2] drm/i915/dsi: fix i2c adapter reference leak in i2c_adapter_lookup() Ma Ke
2026-06-18 11:13 ` Jani Nikula
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox