diff options
author | Zou Wei <zou_wei@huawei.com> | 2021-05-13 11:46:04 +0300 |
---|---|---|
committer | Thomas Zimmermann <tzimmermann@suse.de> | 2021-05-13 16:06:32 +0300 |
commit | 858aa5a4be22368f8d0e8ace7dc0b5ffb62bbdbc (patch) | |
tree | aa32b8374cb0b7cdabaf91a55373058787326555 /drivers/gpu/drm/drm_aperture.c | |
parent | d84680d359378a79664fa840cd144ba0f715968d (diff) | |
download | linux-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.c | 8 |
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; |