mirror of
https://github.com/torvalds/linux.git
synced 2026-05-28 09:04:39 +02:00
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
This commit is contained in:
parent
52a0233916
commit
57fe8285dc
|
|
@ -39,12 +39,13 @@ void drm_client_dev_unregister(struct drm_device *dev)
|
|||
mutex_lock(&dev->clientlist_mutex);
|
||||
list_for_each_entry_safe(client, tmp, &dev->clientlist, list) {
|
||||
list_del(&client->list);
|
||||
if (client->funcs && client->funcs->unregister) {
|
||||
/*
|
||||
* Unregistering consumes and frees the client.
|
||||
*/
|
||||
if (client->funcs && client->funcs->unregister)
|
||||
client->funcs->unregister(client);
|
||||
} else {
|
||||
else
|
||||
drm_client_release(client);
|
||||
kfree(client);
|
||||
}
|
||||
}
|
||||
mutex_unlock(&dev->clientlist_mutex);
|
||||
}
|
||||
|
|
|
|||
Loading…
Reference in New Issue
Block a user