summaryrefslogtreecommitdiff
path: root/drivers/gpu/drm/drm_aperture.c
diff options
context:
space:
mode:
authorZou Wei <zou_wei@huawei.com>2021-05-13 11:46:04 +0300
committerThomas Zimmermann <tzimmermann@suse.de>2021-05-13 16:06:32 +0300
commit858aa5a4be22368f8d0e8ace7dc0b5ffb62bbdbc (patch)
treeaa32b8374cb0b7cdabaf91a55373058787326555 /drivers/gpu/drm/drm_aperture.c
parentd84680d359378a79664fa840cd144ba0f715968d (diff)
downloadlinux-858aa5a4be22368f8d0e8ace7dc0b5ffb62bbdbc.tar.xz
drm/aperture: Fix missing unlock on error in devm_aperture_acquire()
Add the missing unlock before return from function devm_aperture_acquire() in the error handling case. Signed-off-by: Zou Wei <zou_wei@huawei.com> Signed-off-by: Thomas Zimmermann <tzimmermann@suse.de> Reported-by: Hulk Robot <hulkci@huawei.com> Fixes: 730e7992dc1b ("drm/aperture: Add infrastructure for aperture ownership") Cc: Thomas Zimmermann <tzimmermann@suse.de> Cc: Daniel Vetter <daniel.vetter@ffwll.ch> Cc: Maxime Ripard <maxime@cerno.tech> Cc: Maarten Lankhorst <maarten.lankhorst@linux.intel.com> Cc: Maxime Ripard <mripard@kernel.org> Cc: David Airlie <airlied@linux.ie> Cc: Daniel Vetter <daniel@ffwll.ch> Cc: dri-devel@lists.freedesktop.org Link: https://patchwork.freedesktop.org/patch/msgid/1620895564-52367-1-git-send-email-zou_wei@huawei.com
Diffstat (limited to 'drivers/gpu/drm/drm_aperture.c')
-rw-r--r--drivers/gpu/drm/drm_aperture.c8
1 files changed, 6 insertions, 2 deletions
diff --git a/drivers/gpu/drm/drm_aperture.c b/drivers/gpu/drm/drm_aperture.c
index 33bf018c3bdf..9335d9d6cf9a 100644
--- a/drivers/gpu/drm/drm_aperture.c
+++ b/drivers/gpu/drm/drm_aperture.c
@@ -164,13 +164,17 @@ static int devm_aperture_acquire(struct drm_device *dev,
list_for_each(pos, &drm_apertures) {
ap = container_of(pos, struct drm_aperture, lh);
- if (overlap(base, end, ap->base, ap->base + ap->size))
+ if (overlap(base, end, ap->base, ap->base + ap->size)) {
+ mutex_unlock(&drm_apertures_lock);
return -EBUSY;
+ }
}
ap = devm_kzalloc(dev->dev, sizeof(*ap), GFP_KERNEL);
- if (!ap)
+ if (!ap) {
+ mutex_unlock(&drm_apertures_lock);
return -ENOMEM;
+ }
ap->dev = dev;
ap->base = base;