gpu: host1x: Cleanup on initialization failure
PATCH 1/1 gpu: host1x: Cleanup on initialization failure
From: Thierry Reding <[email protected]>
When an error happens during the initialization of one of the sub- devices, make sure to properly cleanup all sub-devices that have been initialized up to that point.
Signed-off-by Thierry Reding <[email protected]>
--- drivers/gpu/host1x/bus.c | 11 +++++++++-- 1 file changed, 9 insertions(+), 2 deletions(-)
drivers/gpu/host1x/bus.c +9 -2
@@ -211,8 +211,7 @@ int host1x_device_init(struct host1x_device *device)dev_err (&device->dev,"failed to initialize %s: %d\n" ,dev_name (client->dev), err); -mutex_unlock (&device->clients_lock); -return err; + goto teardown; } } }
@@ -220,6 +219,14 @@ int host1x_device_init(struct host1x_device *device)mutex_unlock (&device->clients_lock);return 0 ; + +teardown: +list_for_each_entry_continue_reverse (client, &device->clients, list) +if (client->ops->exit) + client->ops->exit (client); + +mutex_unlock (&device->clients_lock); +return err; }EXPORT_SYMBOL (host1x_device_init);
Signature · 1 line
2.15.0