Skip to content

Commit 57fe828

Browse files
committed
drm/client: Do not free client memory by default
Make no assumption on the allocation of the client's memory. For example, amdgpu stores a client within another data structures, where it cannot be freed by itself. The correct place to free the client's memory is the client's free callback. All existing clients implement this. Signed-off-by: Thomas Zimmermann <tzimmermann@suse.de> Reviewed-by: Jocelyn Falempe <jfalempe@redhat.com> Link: https://lore.kernel.org/r/20251009132006.45834-5-tzimmermann@suse.de
1 parent 52a0233 commit 57fe828

1 file changed

Lines changed: 5 additions & 4 deletions

File tree

drivers/gpu/drm/drm_client_event.c

Lines changed: 5 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -39,12 +39,13 @@ void drm_client_dev_unregister(struct drm_device *dev)
3939
mutex_lock(&dev->clientlist_mutex);
4040
list_for_each_entry_safe(client, tmp, &dev->clientlist, list) {
4141
list_del(&client->list);
42-
if (client->funcs && client->funcs->unregister) {
42+
/*
43+
* Unregistering consumes and frees the client.
44+
*/
45+
if (client->funcs && client->funcs->unregister)
4346
client->funcs->unregister(client);
44-
} else {
47+
else
4548
drm_client_release(client);
46-
kfree(client);
47-
}
4849
}
4950
mutex_unlock(&dev->clientlist_mutex);
5051
}

0 commit comments

Comments
 (0)