diff options
author | Christian König <christian.koenig@amd.com> | 2017-11-23 12:57:18 +0100 |
---|---|---|
committer | Alex Deucher <alexander.deucher@amd.com> | 2017-12-06 12:48:30 -0500 |
commit | f3368128bacece315aa0384b54b7da9e6f0909cd (patch) | |
tree | 7b2654fc54b4847362c5b3281bb7512f155fe73f /drivers/gpu/drm/amd/amdgpu/amdgpu_vm.c | |
parent | 341b759e642a847c3a88401db4263dec9f36d552 (diff) | |
download | lwn-f3368128bacece315aa0384b54b7da9e6f0909cd.tar.gz lwn-f3368128bacece315aa0384b54b7da9e6f0909cd.zip |
drm/amdgpu: move validation of the VM size into the VM code
This moves validation of the VM size parameter into amdgpu_vm_adjust_size().
Signed-off-by: Christian König <christian.koenig@amd.com>
Reviewed-by: Felix Kuehling <Felix.Kuehling@amd.com>
Signed-off-by: Alex Deucher <alexander.deucher@amd.com>
Diffstat (limited to 'drivers/gpu/drm/amd/amdgpu/amdgpu_vm.c')
-rw-r--r-- | drivers/gpu/drm/amd/amdgpu/amdgpu_vm.c | 13 |
1 files changed, 11 insertions, 2 deletions
diff --git a/drivers/gpu/drm/amd/amdgpu/amdgpu_vm.c b/drivers/gpu/drm/amd/amdgpu/amdgpu_vm.c index 82a6f6c86aaf..44430c4820cc 100644 --- a/drivers/gpu/drm/amd/amdgpu/amdgpu_vm.c +++ b/drivers/gpu/drm/amd/amdgpu/amdgpu_vm.c @@ -2580,13 +2580,22 @@ static uint32_t amdgpu_vm_get_block_size(uint64_t vm_size) * @vm_size: the default vm size if it's set auto */ void amdgpu_vm_adjust_size(struct amdgpu_device *adev, uint32_t vm_size, - uint32_t fragment_size_default, unsigned max_level) + uint32_t fragment_size_default, unsigned max_level, + unsigned max_bits) { uint64_t tmp; /* adjust vm size first */ - if (amdgpu_vm_size != -1) + if (amdgpu_vm_size != -1) { + unsigned max_size = 1 << (max_bits - 30); + vm_size = amdgpu_vm_size; + if (vm_size > max_size) { + dev_warn(adev->dev, "VM size (%d) too large, max is %u GB\n", + amdgpu_vm_size, max_size); + vm_size = max_size; + } + } adev->vm_manager.max_pfn = (uint64_t)vm_size << 18; |