amdgpu: fix an error of bo_list handler
authormonk.liu <monk.liu@amd.com>
Mon, 27 Apr 2015 02:25:54 +0000 (10:25 +0800)
committerAlex Deucher <alexander.deucher@amd.com>
Wed, 5 Aug 2015 17:47:49 +0000 (13:47 -0400)
original method is just totally wrong, it loses the bo_list handler at
all after command stream accomplished

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>
amdgpu/amdgpu_cs.c

index 614904d..72a2465 100644 (file)
@@ -707,6 +707,7 @@ static int amdgpu_cs_submit_one(amdgpu_device_handle dev,
        uint64_t *chunk_array;
        struct drm_amdgpu_cs_chunk *chunks;
        struct drm_amdgpu_cs_chunk_data *chunk_data;
+       uint32_t bo_list_handle;
 
        if (ibs_request->ip_type >= AMDGPU_HW_IP_NUM)
                return -EINVAL;
@@ -754,10 +755,11 @@ static int amdgpu_cs_submit_one(amdgpu_device_handle dev,
        }
 
        r = amdgpu_cs_create_bo_list(dev, context, ibs_request, NULL,
-                                    &cs.in.bo_list_handle);
+                                    &bo_list_handle);
        if (r)
                goto error_unlock;
 
+       cs.in.bo_list_handle = bo_list_handle;
        pthread_mutex_lock(&context->sequence_mutex);
 
        if (ibs_request->ip_type != AMDGPU_HW_IP_UVD &&
@@ -805,7 +807,7 @@ static int amdgpu_cs_submit_one(amdgpu_device_handle dev,
 
        pthread_mutex_unlock(&context->sequence_mutex);
 
-       r = amdgpu_cs_free_bo_list(dev, cs.in.bo_list_handle);
+       r = amdgpu_cs_free_bo_list(dev, bo_list_handle);
        if (r)
                goto error_free;