[PATCH 3/4] drm/log: Add free callback
Jocelyn Falempe
jfalempe at redhat.com
Wed Oct 15 00:53:15 PDT 2025
On 09/10/2025 15:16, Thomas Zimmermann wrote:
> Free the client memory in the client free callback. Also move the
> debugging output into the free callback: drm_client_release() puts
> the reference on the DRM device, so pointers to the device should
> be considered dangling afterwards.
Thanks, it looks good to me.
Reviewed-by: Jocelyn Falempe <jfalempe at redhat.com>>
> Signed-off-by: Thomas Zimmermann <tzimmermann at suse.de>
> ---
> drivers/gpu/drm/clients/drm_log.c | 14 +++++++++++---
> 1 file changed, 11 insertions(+), 3 deletions(-)
>
> diff --git a/drivers/gpu/drm/clients/drm_log.c b/drivers/gpu/drm/clients/drm_log.c
> index 116e0ef9ae5d..470df4148e96 100644
> --- a/drivers/gpu/drm/clients/drm_log.c
> +++ b/drivers/gpu/drm/clients/drm_log.c
> @@ -293,19 +293,26 @@ static void drm_log_free_scanout(struct drm_client_dev *client)
> }
> }
>
> -static void drm_log_client_unregister(struct drm_client_dev *client)
> +static void drm_log_client_free(struct drm_client_dev *client)
> {
> struct drm_log *dlog = client_to_drm_log(client);
> struct drm_device *dev = client->dev;
>
> + kfree(dlog);
> +
> + drm_dbg(dev, "Unregistered with drm log\n");
> +}
> +
> +static void drm_log_client_unregister(struct drm_client_dev *client)
> +{
> + struct drm_log *dlog = client_to_drm_log(client);
> +
> unregister_console(&dlog->con);
>
> mutex_lock(&dlog->lock);
> drm_log_free_scanout(client);
> mutex_unlock(&dlog->lock);
> drm_client_release(client);
> - kfree(dlog);
> - drm_dbg(dev, "Unregistered with drm log\n");
> }
>
> static int drm_log_client_hotplug(struct drm_client_dev *client)
> @@ -339,6 +346,7 @@ static int drm_log_client_resume(struct drm_client_dev *client, bool _console_lo
>
> static const struct drm_client_funcs drm_log_client_funcs = {
> .owner = THIS_MODULE,
> + .free = drm_log_client_free,
> .unregister = drm_log_client_unregister,
> .hotplug = drm_log_client_hotplug,
> .suspend = drm_log_client_suspend,
More information about the linux-arm-kernel
mailing list