From: Dave Airlie <airl...@redhat.com>

No point have this code dupliated at this point, use the
_object_find code instead now.

Signed-off-by: Dave Airlie <airlied at redhat.com>
---
 drivers/gpu/drm/drm_crtc.c | 35 ++++++++++-------------------------
 1 file changed, 10 insertions(+), 25 deletions(-)

diff --git a/drivers/gpu/drm/drm_crtc.c b/drivers/gpu/drm/drm_crtc.c
index 75a45e9..0d75517 100644
--- a/drivers/gpu/drm/drm_crtc.c
+++ b/drivers/gpu/drm/drm_crtc.c
@@ -362,8 +362,7 @@ static struct drm_mode_object *_object_find(struct 
drm_device *dev,
                obj = NULL;
        /* don't leak out unref'd fb's */
        if (obj &&
-           (obj->type == DRM_MODE_OBJECT_FB ||
-            obj->type == DRM_MODE_OBJECT_BLOB))
+           obj->type == DRM_MODE_OBJECT_BLOB)
                obj = NULL;
        mutex_unlock(&dev->mode_config.idr_mutex);

@@ -478,23 +477,6 @@ out:
 }
 EXPORT_SYMBOL(drm_framebuffer_init);

-static struct drm_framebuffer *__drm_framebuffer_lookup(struct drm_device *dev,
-                                                       uint32_t id)
-{
-       struct drm_mode_object *obj = NULL;
-       struct drm_framebuffer *fb;
-
-       mutex_lock(&dev->mode_config.idr_mutex);
-       obj = idr_find(&dev->mode_config.crtc_idr, id);
-       if (!obj || (obj->type != DRM_MODE_OBJECT_FB) || (obj->id != id))
-               fb = NULL;
-       else
-               fb = obj_to_fb(obj);
-       mutex_unlock(&dev->mode_config.idr_mutex);
-
-       return fb;
-}
-
 /**
  * drm_framebuffer_lookup - look up a drm framebuffer and grab a reference
  * @dev: drm device
@@ -507,11 +489,13 @@ static struct drm_framebuffer 
*__drm_framebuffer_lookup(struct drm_device *dev,
 struct drm_framebuffer *drm_framebuffer_lookup(struct drm_device *dev,
                                               uint32_t id)
 {
-       struct drm_framebuffer *fb;
+       struct drm_mode_object *obj;
+       struct drm_framebuffer *fb = NULL;

        mutex_lock(&dev->mode_config.fb_lock);
-       fb = __drm_framebuffer_lookup(dev, id);
-       if (fb) {
+       obj = _object_find(dev, id, DRM_MODE_OBJECT_FB);
+       if (obj) {
+               fb = obj_to_fb(obj);
                if (!kref_get_unless_zero(&fb->base.refcount))
                        fb = NULL;
        }
@@ -3449,6 +3433,7 @@ int drm_mode_rmfb(struct drm_device *dev,
 {
        struct drm_framebuffer *fb = NULL;
        struct drm_framebuffer *fbl = NULL;
+       struct drm_mode_object *obj;
        uint32_t *id = data;
        int found = 0;

@@ -3457,10 +3442,10 @@ int drm_mode_rmfb(struct drm_device *dev,

        mutex_lock(&file_priv->fbs_lock);
        mutex_lock(&dev->mode_config.fb_lock);
-       fb = __drm_framebuffer_lookup(dev, *id);
-       if (!fb)
+       obj = _object_find(dev, *id, DRM_MODE_OBJECT_FB);
+       if (!obj)
                goto fail_lookup;
-
+       fb = obj_to_fb(obj);
        list_for_each_entry(fbl, &file_priv->fbs, filp_head)
                if (fb == fbl)
                        found = 1;
-- 
2.5.5

Reply via email to