mirror of https://gitee.com/openkylin/linux.git
drm/tegra: fb: Properly release GEM objects on failure
When fbdev initialization fails, make sure to unreference the GEM objects properly. Note that we can't do this in the general error unwinding path because ownership of the GEM object references is transferred to the framebuffer upon creation. Signed-off-by: Thierry Reding <treding@nvidia.com>
This commit is contained in:
parent
9aaa0cebcb
commit
b88f005ea3
|
@ -227,7 +227,7 @@ static int tegra_fbdev_probe(struct drm_fb_helper *helper,
|
|||
info = framebuffer_alloc(0, drm->dev);
|
||||
if (!info) {
|
||||
dev_err(drm->dev, "failed to allocate framebuffer info\n");
|
||||
tegra_bo_free_object(&bo->gem);
|
||||
drm_gem_object_unreference_unlocked(&bo->gem);
|
||||
return -ENOMEM;
|
||||
}
|
||||
|
||||
|
@ -235,6 +235,7 @@ static int tegra_fbdev_probe(struct drm_fb_helper *helper,
|
|||
if (IS_ERR(fbdev->fb)) {
|
||||
dev_err(drm->dev, "failed to allocate DRM framebuffer\n");
|
||||
err = PTR_ERR(fbdev->fb);
|
||||
drm_gem_object_unreference_unlocked(&bo->gem);
|
||||
goto release;
|
||||
}
|
||||
|
||||
|
|
Loading…
Reference in New Issue