|
@@ -124,14 +124,14 @@ static int amdgpu_cs_parser_init(struct amdgpu_cs_parser *p, union drm_amdgpu_cs
|
|
goto free_chunk;
|
|
goto free_chunk;
|
|
}
|
|
}
|
|
|
|
|
|
|
|
+ mutex_lock(&p->ctx->lock);
|
|
|
|
+
|
|
/* skip guilty context job */
|
|
/* skip guilty context job */
|
|
if (atomic_read(&p->ctx->guilty) == 1) {
|
|
if (atomic_read(&p->ctx->guilty) == 1) {
|
|
ret = -ECANCELED;
|
|
ret = -ECANCELED;
|
|
goto free_chunk;
|
|
goto free_chunk;
|
|
}
|
|
}
|
|
|
|
|
|
- mutex_lock(&p->ctx->lock);
|
|
|
|
-
|
|
|
|
/* get chunks */
|
|
/* get chunks */
|
|
chunk_array_user = u64_to_user_ptr(cs->in.chunks);
|
|
chunk_array_user = u64_to_user_ptr(cs->in.chunks);
|
|
if (copy_from_user(chunk_array, chunk_array_user,
|
|
if (copy_from_user(chunk_array, chunk_array_user,
|