diff options
Diffstat (limited to 'drivers')
-rw-r--r-- | drivers/gpu/nvgpu/common/linux/vm.c | 6 |
1 files changed, 6 insertions, 0 deletions
diff --git a/drivers/gpu/nvgpu/common/linux/vm.c b/drivers/gpu/nvgpu/common/linux/vm.c index f2a38f7c..58e2da13 100644 --- a/drivers/gpu/nvgpu/common/linux/vm.c +++ b/drivers/gpu/nvgpu/common/linux/vm.c | |||
@@ -266,6 +266,12 @@ u64 nvgpu_vm_map(struct vm_gk20a *vm, | |||
266 | mapping_size = mapping_size ? mapping_size : bfr.size; | 266 | mapping_size = mapping_size ? mapping_size : bfr.size; |
267 | mapping_size = ALIGN(mapping_size, SZ_4K); | 267 | mapping_size = ALIGN(mapping_size, SZ_4K); |
268 | 268 | ||
269 | if ((mapping_size > bfr.size) || | ||
270 | (buffer_offset > (bfr.size - mapping_size))) { | ||
271 | err = -EINVAL; | ||
272 | goto clean_up; | ||
273 | } | ||
274 | |||
269 | /* Check if we should use a fixed offset for mapping this buffer */ | 275 | /* Check if we should use a fixed offset for mapping this buffer */ |
270 | if (flags & NVGPU_AS_MAP_BUFFER_FLAGS_FIXED_OFFSET) { | 276 | if (flags & NVGPU_AS_MAP_BUFFER_FLAGS_FIXED_OFFSET) { |
271 | err = nvgpu_vm_area_validate_buffer(vm, offset_align, mapping_size, | 277 | err = nvgpu_vm_area_validate_buffer(vm, offset_align, mapping_size, |