mirror of
https://git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git
synced 2026-05-05 19:24:01 -04:00
drm/vc4: Fix refcounting of runtime PM get if it errors out.
We were returning without decrementing if the error happened, meaning that at the next submit we wouldn't try to bring up the power domain. Signed-off-by: Eric Anholt <eric@anholt.net> Link: http://patchwork.freedesktop.org/patch/msgid/20170417162603.12726-1-eric@anholt.net Reviewed-by: Sean Paul <seanpaul@chromium.org>
This commit is contained in:
@@ -1010,13 +1010,16 @@ vc4_submit_cl_ioctl(struct drm_device *dev, void *data,
|
||||
}
|
||||
|
||||
mutex_lock(&vc4->power_lock);
|
||||
if (vc4->power_refcount++ == 0)
|
||||
if (vc4->power_refcount++ == 0) {
|
||||
ret = pm_runtime_get_sync(&vc4->v3d->pdev->dev);
|
||||
mutex_unlock(&vc4->power_lock);
|
||||
if (ret < 0) {
|
||||
kfree(exec);
|
||||
return ret;
|
||||
if (ret < 0) {
|
||||
mutex_unlock(&vc4->power_lock);
|
||||
vc4->power_refcount--;
|
||||
kfree(exec);
|
||||
return ret;
|
||||
}
|
||||
}
|
||||
mutex_unlock(&vc4->power_lock);
|
||||
|
||||
exec->args = args;
|
||||
INIT_LIST_HEAD(&exec->unref_list);
|
||||
|
||||
Reference in New Issue
Block a user