drm/amdgpu: return -EFAULT if copy_to_user() fails
The copy_to_user() function returns the number of bytes remaining to be
copied, but we want to return a negative error code to the user.
Fixes: 030d5b97a5 ("drm/amdgpu: use amdgpu_device_vram_access in amdgpu_ttm_vram_read")
Reviewed-by: Christian König <christian.koenig@amd.com>
Signed-off-by: Dan Carpenter <dan.carpenter@oracle.com>
Signed-off-by: Alex Deucher <alexander.deucher@amd.com>
This commit is contained in:
committed by
Alex Deucher
parent
72b4c01d66
commit
434cbcb1bd
@@ -2290,7 +2290,6 @@ static ssize_t amdgpu_ttm_vram_read(struct file *f, char __user *buf,
|
|||||||
{
|
{
|
||||||
struct amdgpu_device *adev = file_inode(f)->i_private;
|
struct amdgpu_device *adev = file_inode(f)->i_private;
|
||||||
ssize_t result = 0;
|
ssize_t result = 0;
|
||||||
int r;
|
|
||||||
|
|
||||||
if (size & 0x3 || *pos & 0x3)
|
if (size & 0x3 || *pos & 0x3)
|
||||||
return -EINVAL;
|
return -EINVAL;
|
||||||
@@ -2304,9 +2303,8 @@ static ssize_t amdgpu_ttm_vram_read(struct file *f, char __user *buf,
|
|||||||
uint32_t value[AMDGPU_TTM_VRAM_MAX_DW_READ];
|
uint32_t value[AMDGPU_TTM_VRAM_MAX_DW_READ];
|
||||||
|
|
||||||
amdgpu_device_vram_access(adev, *pos, value, bytes, false);
|
amdgpu_device_vram_access(adev, *pos, value, bytes, false);
|
||||||
r = copy_to_user(buf, value, bytes);
|
if (copy_to_user(buf, value, bytes))
|
||||||
if (r)
|
return -EFAULT;
|
||||||
return r;
|
|
||||||
|
|
||||||
result += bytes;
|
result += bytes;
|
||||||
buf += bytes;
|
buf += bytes;
|
||||||
|
|||||||
Reference in New Issue
Block a user