Skip to content

Commit cee26ac

Browse files
committed
drm/mode: use _object_find to find framebuffers.
No point have this code dupliated at this point, use the _object_find code instead now. Signed-off-by: Dave Airlie <[email protected]> Reviewed-by: Daniel Vetter <[email protected]>
1 parent d0f37cf commit cee26ac

File tree

1 file changed

+10
-25
lines changed

1 file changed

+10
-25
lines changed

drivers/gpu/drm/drm_crtc.c

Lines changed: 10 additions & 25 deletions
Original file line numberDiff line numberDiff line change
@@ -362,8 +362,7 @@ static struct drm_mode_object *_object_find(struct drm_device *dev,
362362
obj = NULL;
363363
/* don't leak out unref'd fb's */
364364
if (obj &&
365-
(obj->type == DRM_MODE_OBJECT_FB ||
366-
obj->type == DRM_MODE_OBJECT_BLOB))
365+
obj->type == DRM_MODE_OBJECT_BLOB)
367366
obj = NULL;
368367
mutex_unlock(&dev->mode_config.idr_mutex);
369368

@@ -478,23 +477,6 @@ int drm_framebuffer_init(struct drm_device *dev, struct drm_framebuffer *fb,
478477
}
479478
EXPORT_SYMBOL(drm_framebuffer_init);
480479

481-
static struct drm_framebuffer *__drm_framebuffer_lookup(struct drm_device *dev,
482-
uint32_t id)
483-
{
484-
struct drm_mode_object *obj = NULL;
485-
struct drm_framebuffer *fb;
486-
487-
mutex_lock(&dev->mode_config.idr_mutex);
488-
obj = idr_find(&dev->mode_config.crtc_idr, id);
489-
if (!obj || (obj->type != DRM_MODE_OBJECT_FB) || (obj->id != id))
490-
fb = NULL;
491-
else
492-
fb = obj_to_fb(obj);
493-
mutex_unlock(&dev->mode_config.idr_mutex);
494-
495-
return fb;
496-
}
497-
498480
/**
499481
* drm_framebuffer_lookup - look up a drm framebuffer and grab a reference
500482
* @dev: drm device
@@ -507,11 +489,13 @@ static struct drm_framebuffer *__drm_framebuffer_lookup(struct drm_device *dev,
507489
struct drm_framebuffer *drm_framebuffer_lookup(struct drm_device *dev,
508490
uint32_t id)
509491
{
510-
struct drm_framebuffer *fb;
492+
struct drm_mode_object *obj;
493+
struct drm_framebuffer *fb = NULL;
511494

512495
mutex_lock(&dev->mode_config.fb_lock);
513-
fb = __drm_framebuffer_lookup(dev, id);
514-
if (fb) {
496+
obj = _object_find(dev, id, DRM_MODE_OBJECT_FB);
497+
if (obj) {
498+
fb = obj_to_fb(obj);
515499
if (!kref_get_unless_zero(&fb->base.refcount))
516500
fb = NULL;
517501
}
@@ -3489,6 +3473,7 @@ int drm_mode_rmfb(struct drm_device *dev,
34893473
{
34903474
struct drm_framebuffer *fb = NULL;
34913475
struct drm_framebuffer *fbl = NULL;
3476+
struct drm_mode_object *obj;
34923477
uint32_t *id = data;
34933478
int found = 0;
34943479

@@ -3497,10 +3482,10 @@ int drm_mode_rmfb(struct drm_device *dev,
34973482

34983483
mutex_lock(&file_priv->fbs_lock);
34993484
mutex_lock(&dev->mode_config.fb_lock);
3500-
fb = __drm_framebuffer_lookup(dev, *id);
3501-
if (!fb)
3485+
obj = _object_find(dev, *id, DRM_MODE_OBJECT_FB);
3486+
if (!obj)
35023487
goto fail_lookup;
3503-
3488+
fb = obj_to_fb(obj);
35043489
list_for_each_entry(fbl, &file_priv->fbs, filp_head)
35053490
if (fb == fbl)
35063491
found = 1;

0 commit comments

Comments
 (0)