}
 EXPORT_SYMBOL(drm_sched_entity_init);
 
-/**
- * drm_sched_entity_is_initialized - Query if entity is initialized
- *
- * @sched: Pointer to scheduler instance
- * @entity: The pointer to a valid scheduler entity
- *
- * return true if entity is initialized, false otherwise
-*/
-static bool drm_sched_entity_is_initialized(struct drm_gpu_scheduler *sched,
-                                           struct drm_sched_entity *entity)
-{
-       return entity->rq != NULL &&
-               entity->rq->sched == sched;
-}
-
 /**
  * drm_sched_entity_is_idle - Check if entity is idle
  *
 {
        rmb();
 
-       if (!entity->rq || spsc_queue_peek(&entity->job_queue) == NULL)
+       if (list_empty(&entity->list) ||
+           spsc_queue_peek(&entity->job_queue) == NULL)
                return true;
 
        return false;
        long ret = timeout;
 
        sched = entity->rq->sched;
-       if (!drm_sched_entity_is_initialized(sched, entity))
-               return ret;
        /**
         * The client will not queue more IBs during this fini, consume existing
         * queued IBs or discard them on SIGKILL
        last_user = cmpxchg(&entity->last_user, current->group_leader, NULL);
        if ((!last_user || last_user == current->group_leader) &&
            (current->flags & PF_EXITING) && (current->exit_code == SIGKILL))
-               drm_sched_entity_set_rq(entity, NULL);
+               drm_sched_rq_remove_entity(entity->rq, entity);
 
        return ret;
 }
        struct drm_gpu_scheduler *sched;
 
        sched = entity->rq->sched;
-       drm_sched_entity_set_rq(entity, NULL);
+       drm_sched_rq_remove_entity(entity->rq, entity);
 
        /* Consumption of existing IBs wasn't completed. Forcefully
         * remove them here.
        if (entity->rq == rq)
                return;
 
-       spin_lock(&entity->rq_lock);
-
-       if (entity->rq)
-               drm_sched_rq_remove_entity(entity->rq, entity);
+       BUG_ON(!rq);
 
+       spin_lock(&entity->rq_lock);
+       drm_sched_rq_remove_entity(entity->rq, entity);
        entity->rq = rq;
-       if (rq)
-               drm_sched_rq_add_entity(rq, entity);
-
+       drm_sched_rq_add_entity(rq, entity);
        spin_unlock(&entity->rq_lock);
 }
 EXPORT_SYMBOL(drm_sched_entity_set_rq);