diff options
-rw-r--r-- | drivers/gpu/drm/amd/amdgpu/amdgpu_cs.c | 10 |
1 files changed, 4 insertions, 6 deletions
diff --git a/drivers/gpu/drm/amd/amdgpu/amdgpu_cs.c b/drivers/gpu/drm/amd/amdgpu/amdgpu_cs.c index c8de4b6194e8..7b4823deef33 100644 --- a/drivers/gpu/drm/amd/amdgpu/amdgpu_cs.c +++ b/drivers/gpu/drm/amd/amdgpu/amdgpu_cs.c | |||
@@ -891,13 +891,14 @@ int amdgpu_cs_ioctl(struct drm_device *dev, void *data, struct drm_file *filp) | |||
891 | return r; | 891 | return r; |
892 | } | 892 | } |
893 | 893 | ||
894 | r = amdgpu_cs_parser_prepare_job(parser); | ||
895 | if (r) | ||
896 | goto out; | ||
897 | |||
894 | if (amdgpu_enable_scheduler && parser->num_ibs) { | 898 | if (amdgpu_enable_scheduler && parser->num_ibs) { |
895 | struct amdgpu_job *job; | 899 | struct amdgpu_job *job; |
896 | struct amdgpu_ring * ring = | 900 | struct amdgpu_ring * ring = |
897 | amdgpu_cs_parser_get_ring(adev, parser); | 901 | amdgpu_cs_parser_get_ring(adev, parser); |
898 | r = amdgpu_cs_parser_prepare_job(parser); | ||
899 | if (r) | ||
900 | goto out; | ||
901 | job = kzalloc(sizeof(struct amdgpu_job), GFP_KERNEL); | 902 | job = kzalloc(sizeof(struct amdgpu_job), GFP_KERNEL); |
902 | if (!job) | 903 | if (!job) |
903 | return -ENOMEM; | 904 | return -ENOMEM; |
@@ -939,9 +940,6 @@ int amdgpu_cs_ioctl(struct drm_device *dev, void *data, struct drm_file *filp) | |||
939 | up_read(&adev->exclusive_lock); | 940 | up_read(&adev->exclusive_lock); |
940 | return 0; | 941 | return 0; |
941 | } | 942 | } |
942 | r = amdgpu_cs_parser_prepare_job(parser); | ||
943 | if (r) | ||
944 | goto out; | ||
945 | 943 | ||
946 | cs->out.handle = parser->ibs[parser->num_ibs - 1].sequence; | 944 | cs->out.handle = parser->ibs[parser->num_ibs - 1].sequence; |
947 | out: | 945 | out: |