If copy_to_user() fails, it returns the number of bytes remaining to be copied but we want to return a negative error code (-EFAULT) to the user.
Fixes: 9d5dabfeff3c ("drm/amdkfd: CRIU Save Shared Virtual Memory ranges") Signed-off-by: Dan Carpenter dan.carpenter@oracle.com --- drivers/gpu/drm/amd/amdkfd/kfd_svm.c | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-)
diff --git a/drivers/gpu/drm/amd/amdkfd/kfd_svm.c b/drivers/gpu/drm/amd/amdkfd/kfd_svm.c index 41f03d165bad..38a056fd0966 100644 --- a/drivers/gpu/drm/amd/amdkfd/kfd_svm.c +++ b/drivers/gpu/drm/amd/amdkfd/kfd_svm.c @@ -3775,10 +3775,10 @@ int kfd_criu_checkpoint_svm(struct kfd_process *p, goto exit_priv; }
- ret = copy_to_user(user_priv_data + *priv_data_offset, - svm_priv, svm_priv_data_size); - if (ret) { + if (copy_to_user(user_priv_data + *priv_data_offset, svm_priv, + svm_priv_data_size)) { pr_err("Failed to copy svm priv to user\n"); + ret = -EFAULT; goto exit_priv; }
On 2022-02-09 13:09, Dan Carpenter wrote:
If copy_to_user() fails, it returns the number of bytes remaining to be copied but we want to return a negative error code (-EFAULT) to the user.
Fixes: 9d5dabfeff3c ("drm/amdkfd: CRIU Save Shared Virtual Memory ranges") Signed-off-by: Dan Carpenter dan.carpenter@oracle.com
Thank you Dan. I'm applying your two patches to amd-staging-drm-next.
Regards, Felix
drivers/gpu/drm/amd/amdkfd/kfd_svm.c | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-)
diff --git a/drivers/gpu/drm/amd/amdkfd/kfd_svm.c b/drivers/gpu/drm/amd/amdkfd/kfd_svm.c index 41f03d165bad..38a056fd0966 100644 --- a/drivers/gpu/drm/amd/amdkfd/kfd_svm.c +++ b/drivers/gpu/drm/amd/amdkfd/kfd_svm.c @@ -3775,10 +3775,10 @@ int kfd_criu_checkpoint_svm(struct kfd_process *p, goto exit_priv; }
ret = copy_to_user(user_priv_data + *priv_data_offset,
svm_priv, svm_priv_data_size);
if (ret) {
if (copy_to_user(user_priv_data + *priv_data_offset, svm_priv,
svm_priv_data_size)) { pr_err("Failed to copy svm priv to user\n");
}ret = -EFAULT; goto exit_priv;
dri-devel@lists.freedesktop.org