The return value from copy_form_user is 0 for the success case. Signed-off-by: Andres Rodriguez <andresx7 at gmail.com> --- drivers/gpu/drm/amd/amdgpu/amdgpu_amdkfd_gfx_v8.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/drivers/gpu/drm/amd/amdgpu/amdgpu_amdkfd_gfx_v8.c b/drivers/gpu/drm/amd/amdgpu/amdgpu_amdkfd_gfx_v8.c index f9ad534..8af2975 100644 --- a/drivers/gpu/drm/amd/amdgpu/amdgpu_amdkfd_gfx_v8.c +++ b/drivers/gpu/drm/amd/amdgpu/amdgpu_amdkfd_gfx_v8.c @@ -235,41 +235,41 @@ static inline uint32_t get_sdma_base_addr(struct cik_sdma_rlc_registers *m) static inline struct vi_mqd *get_mqd(void *mqd) { return (struct vi_mqd *)mqd; } static inline struct cik_sdma_rlc_registers *get_sdma_mqd(void *mqd) { return (struct cik_sdma_rlc_registers *)mqd; } static int kgd_hqd_load(struct kgd_dev *kgd, void *mqd, uint32_t pipe_id, uint32_t queue_id, uint32_t __user *wptr) { struct vi_mqd *m; uint32_t shadow_wptr, valid_wptr; struct amdgpu_device *adev = get_amdgpu_device(kgd); m = get_mqd(mqd); valid_wptr = copy_from_user(&shadow_wptr, wptr, sizeof(shadow_wptr)); - if (valid_wptr > 0) + if (valid_wptr == 0) m->cp_hqd_pq_wptr = shadow_wptr; acquire_queue(kgd, pipe_id, queue_id); gfx_v8_0_mqd_commit(adev, mqd); release_queue(kgd); return 0; } static int kgd_hqd_sdma_load(struct kgd_dev *kgd, void *mqd) { return 0; } static bool kgd_hqd_is_occupied(struct kgd_dev *kgd, uint64_t queue_address, uint32_t pipe_id, uint32_t queue_id) { struct amdgpu_device *adev = get_amdgpu_device(kgd); uint32_t act; bool retval = false; -- 2.9.3