From: Ville Syrj?l? <ville.syrj...@linux.intel.com>

Use a do {} while() loop instead of a goto in drm_mode_object_get().

Signed-off-by: Ville Syrj?l? <ville.syrjala at linux.intel.com>
---
 drivers/gpu/drm/drm_crtc.c |   20 ++++++++++----------
 1 files changed, 10 insertions(+), 10 deletions(-)

diff --git a/drivers/gpu/drm/drm_crtc.c b/drivers/gpu/drm/drm_crtc.c
index d2d9dc5..12333ca 100644
--- a/drivers/gpu/drm/drm_crtc.c
+++ b/drivers/gpu/drm/drm_crtc.c
@@ -224,17 +224,17 @@ static int drm_mode_object_get(struct drm_device *dev,
        int new_id = 0;
        int ret;

-again:
-       if (idr_pre_get(&dev->mode_config.crtc_idr, GFP_KERNEL) == 0) {
-               DRM_ERROR("Ran out memory getting a mode number\n");
-               return -EINVAL;
-       }
+       do {
+               if (idr_pre_get(&dev->mode_config.crtc_idr, GFP_KERNEL) == 0) {
+                       DRM_ERROR("Ran out memory getting a mode number\n");
+                       return -EINVAL;
+               }

-       mutex_lock(&dev->mode_config.idr_mutex);
-       ret = idr_get_new_above(&dev->mode_config.crtc_idr, obj, 1, &new_id);
-       mutex_unlock(&dev->mode_config.idr_mutex);
-       if (ret == -EAGAIN)
-               goto again;
+               mutex_lock(&dev->mode_config.idr_mutex);
+               ret = idr_get_new_above(&dev->mode_config.crtc_idr,
+                                       obj, 1, &new_id);
+               mutex_unlock(&dev->mode_config.idr_mutex);
+       } while (ret == -EAGAIN);

        obj->id = new_id;
        obj->type = obj_type;
-- 
1.7.3.4

Reply via email to