drm/amdgpu: return error if both BOs and bo_list handle is given
authorChristian König <[email protected]>
Mon, 30 Jul 2018 14:18:54 +0000 (16:18 +0200)
committerAlex Deucher <[email protected]>
Tue, 31 Jul 2018 21:58:17 +0000 (16:58 -0500)
Return -EINVAL when both the BOs as well as a list handle is provided in
the IOCTL.

Signed-off-by: Christian König <[email protected]>
Reviewed-by: Chunming Zhou <[email protected]>
Reviewed-by: Huang Rui <[email protected]>
Signed-off-by: Alex Deucher <[email protected]>
drivers/gpu/drm/amd/amdgpu/amdgpu_cs.c

index 8a49c3b97bd43651218cb6327bce32d23fe6b0eb..d41cea78e4aa7e565ed8f2a43ec65248ee39e681 100644 (file)
@@ -572,14 +572,17 @@ static int amdgpu_cs_parser_bos(struct amdgpu_cs_parser *p,
        INIT_LIST_HEAD(&p->validated);
 
        /* p->bo_list could already be assigned if AMDGPU_CHUNK_ID_BO_HANDLES is present */
-       if (p->bo_list) {
-               mutex_lock(&p->bo_list->lock);
+       if (cs->in.bo_list_handle) {
+               if (p->bo_list)
+                       return -EINVAL;
 
-       } else if (cs->in.bo_list_handle) {
                r = amdgpu_bo_list_get(fpriv, cs->in.bo_list_handle,
                                       &p->bo_list);
                if (r)
                        return r;
+
+       } else if (p->bo_list) {
+               mutex_lock(&p->bo_list->lock);
        }
 
        if (p->bo_list) {