diff options
author | Christian König <christian.koenig@amd.com> | 2015-05-18 08:37:27 -0400 |
---|---|---|
committer | Alex Deucher <alexander.deucher@amd.com> | 2015-06-03 21:03:43 -0400 |
commit | 0be52de91c5e275dff61f0ed2314d84c9d68b385 (patch) | |
tree | fe0119faa0f88714457adaaff98a83ce44bee831 /drivers/gpu/drm/amd/amdgpu | |
parent | 271c81256612b162a9ae0f8c0f0a055a7523cea5 (diff) |
drm/amdgpu: validate amdgpu_vm_bo_map parameters
Signed-off-by: Christian König <christian.koenig@amd.com>
Reviewed-by: Jammy Zhou <Jammy.Zhou@amd.com>
Reviewed-by: Alex Deucher <alexander.deucher@amd.com>
Diffstat (limited to 'drivers/gpu/drm/amd/amdgpu')
-rw-r--r-- | drivers/gpu/drm/amd/amdgpu/amdgpu_vm.c | 7 |
1 files changed, 7 insertions, 0 deletions
diff --git a/drivers/gpu/drm/amd/amdgpu/amdgpu_vm.c b/drivers/gpu/drm/amd/amdgpu/amdgpu_vm.c index 1cc01fb409dc..b25e533fd6e8 100644 --- a/drivers/gpu/drm/amd/amdgpu/amdgpu_vm.c +++ b/drivers/gpu/drm/amd/amdgpu/amdgpu_vm.c | |||
@@ -936,6 +936,13 @@ int amdgpu_vm_bo_map(struct amdgpu_device *adev, | |||
936 | uint64_t eaddr; | 936 | uint64_t eaddr; |
937 | int r; | 937 | int r; |
938 | 938 | ||
939 | /* validate the parameters */ | ||
940 | if (saddr & AMDGPU_GPU_PAGE_MASK || offset & AMDGPU_GPU_PAGE_MASK || | ||
941 | size == 0 || size & AMDGPU_GPU_PAGE_MASK) { | ||
942 | amdgpu_bo_unreserve(bo_va->bo); | ||
943 | return -EINVAL; | ||
944 | } | ||
945 | |||
939 | /* make sure object fit at this offset */ | 946 | /* make sure object fit at this offset */ |
940 | eaddr = saddr + size; | 947 | eaddr = saddr + size; |
941 | if ((saddr >= eaddr) || (offset + size > amdgpu_bo_size(bo_va->bo))) { | 948 | if ((saddr >= eaddr) || (offset + size > amdgpu_bo_size(bo_va->bo))) { |