Re: [PATCH v2] clk: eyeq: fix memory leak in eqc_auxdev_create() error path
From: Guangshuo Li
Date: Tue Apr 14 2026 - 07:53:12 EST
Hi Brian,
Thanks for reviewing.
On Tue, 14 Apr 2026 at 00:42, Brian Masney <bmasney@xxxxxxxxxx> wrote:
>
> There is a leak in the error path here as well. I think this code
> should be converted to devm_kzalloc().
>
> There is no devm_kzalloc_obj() yet, however according to [1] that should
> be coming soon.
>
> [1] https://lore.kernel.org/lkml/20260330154108.GA3389518@xxxxxxxxxxxxxxxxxxxxxxxxxx/
>
> Brian
>
I may be missing something, but I think the auxiliary_device_add() error
path is already handled here:
ret = auxiliary_device_add(adev);
if (ret)
auxiliary_device_uninit(adev);
The auxiliary device also has:
adev->dev.release = eqc_auxdev_release;
with:
static void eqc_auxdev_release(struct device *dev)
{
struct auxiliary_device *adev = to_auxiliary_dev(dev);
kfree(adev);
}
So my understanding was that after a successful auxiliary_device_init(),
the auxiliary_device_add() failure path should be cleaned up through
auxiliary_device_uninit(), which would eventually invoke the release
callback and free adev.
The leak I was trying to fix is only the auxiliary_device_init() failure
path, where the function returns directly before that cleanup path is
available.
Please let me know if I overlooked something.
Thanks,
Guangshuo