tree:   git://people.freedesktop.org/~agd5f/linux.git amd-staging-drm-next
head:   53d5f1e4a6d91457678a24b03d0a66edafb800ea
commit: 711c989d235ffd044fb04b971049e204b33fde3f [1/4] drm/scheduler: add a 
list of run queues to the entity

New smatch warnings:
drivers/gpu/drm/scheduler/gpu_scheduler.c:195 drm_sched_entity_init() error: 
potential null dereference 'entity->rq_list'.  (kcalloc returns null)

Old smatch warnings:
include/asm-generic/atomic-instrumented.h:365 cmpxchg_size() error: 
uninitialized symbol '__ret'.

vim +195 drivers/gpu/drm/scheduler/gpu_scheduler.c

   160  
   161  /**
   162   * drm_sched_entity_init - Init a context entity used by scheduler when
   163   * submit to HW ring.
   164   *
   165   * @entity: scheduler entity to init
   166   * @rq_list: the list of run queue on which jobs from this
   167   *           entity can be submitted
   168   * @num_rq_list: number of run queue in rq_list
   169   * @guilty: atomic_t set to 1 when a job on this queue
   170   *          is found to be guilty causing a timeout
   171   *
   172   * Note: the rq_list should have atleast one element to schedule
   173   *       the entity
   174   *
   175   * Returns 0 on success or a negative error code on failure.
   176  */
   177  int drm_sched_entity_init(struct drm_sched_entity *entity,
   178                            struct drm_sched_rq **rq_list,
   179                            unsigned int num_rq_list,
   180                            atomic_t *guilty)
   181  {
   182          int i;
   183  
   184          if (!(entity && rq_list && num_rq_list > 0 && rq_list[0]))
   185                  return -EINVAL;
   186  
   187          memset(entity, 0, sizeof(struct drm_sched_entity));
   188          INIT_LIST_HEAD(&entity->list);
   189          entity->rq = rq_list[0];
   190          entity->guilty = guilty;
   191          entity->num_rq_list = num_rq_list;
   192          entity->rq_list = kcalloc(num_rq_list, sizeof(struct 
drm_sched_rq *),
   193                                  GFP_KERNEL);
   194          for (i = 0; i < num_rq_list; ++i)
 > 195                  entity->rq_list[i] = rq_list[i];
   196          entity->last_scheduled = NULL;
   197  
   198          spin_lock_init(&entity->rq_lock);
   199          spsc_queue_init(&entity->job_queue);
   200  
   201          atomic_set(&entity->fence_seq, 0);
   202          entity->fence_context = dma_fence_context_alloc(2);
   203  
   204          return 0;
   205  }
   206  EXPORT_SYMBOL(drm_sched_entity_init);
   207  

---
0-DAY kernel test infrastructure                Open Source Technology Center
https://lists.01.org/pipermail/kbuild-all                   Intel Corporation
_______________________________________________
dri-devel mailing list
dri-devel@lists.freedesktop.org
https://lists.freedesktop.org/mailman/listinfo/dri-devel

Reply via email to