drm/amdgpu: fix bug occurs when bo_list is NULL
authormonk.liu <monk.liu@amd.com>
Mon, 27 Apr 2015 07:19:20 +0000 (15:19 +0800)
committerAlex Deucher <alexander.deucher@amd.com>
Thu, 4 Jun 2015 01:03:21 +0000 (21:03 -0400)
Still need to handle ibs BO and validate them even bo_list is NULL

Signed-off-by: Monk.Liu <monk.liu@amd.com>
Reviewed-by: Christian König <christian.koenig@amd.com>
Signed-off-by: Alex Deucher <alexander.deucher@amd.com>
drivers/gpu/drm/amd/amdgpu/amdgpu_cs.c

index 70a90312d0a42a675af57a9603598c8115fa277e..ffbe9aa9f2325fbebd8286339acac8e45420f22b 100644 (file)
@@ -353,19 +353,19 @@ static int amdgpu_cs_parser_relocs(struct amdgpu_cs_parser *p)
 {
        struct amdgpu_fpriv *fpriv = p->filp->driver_priv;
        struct amdgpu_cs_buckets buckets;
-       bool need_mmap_lock;
+       bool need_mmap_lock = false;
        int i, r;
 
-       if (p->bo_list == NULL)
-               return 0;
+       if (p->bo_list) {
+               need_mmap_lock = p->bo_list->has_userptr;
+               amdgpu_cs_buckets_init(&buckets);
+               for (i = 0; i < p->bo_list->num_entries; i++)
+                       amdgpu_cs_buckets_add(&buckets, &p->bo_list->array[i].tv.head,
+                                                                 p->bo_list->array[i].priority);
 
-       need_mmap_lock = p->bo_list->has_userptr;
-       amdgpu_cs_buckets_init(&buckets);
-       for (i = 0; i < p->bo_list->num_entries; i++)
-               amdgpu_cs_buckets_add(&buckets, &p->bo_list->array[i].tv.head,
-                                             p->bo_list->array[i].priority);
+               amdgpu_cs_buckets_get_list(&buckets, &p->validated);
+       }
 
-       amdgpu_cs_buckets_get_list(&buckets, &p->validated);
        p->vm_bos = amdgpu_vm_get_bos(p->adev, &fpriv->vm,
                                      &p->validated);