summaryrefslogtreecommitdiffstats
path: root/drivers/gpu/nvgpu/gk20a/as_gk20a.c
diff options
context:
space:
mode:
authorBharat Nihalani <bnihalani@nvidia.com>2015-06-04 08:08:59 -0400
committerTerje Bergstrom <tbergstrom@nvidia.com>2015-06-04 13:41:00 -0400
commitb8aa486109a43a8c92159b0845a4adc9f6a84654 (patch)
tree9086e63713df6a63d4ad152503c49e238d23c7d3 /drivers/gpu/nvgpu/gk20a/as_gk20a.c
parent56d7896731c91595db3205777f308fbcaeac7340 (diff)
Revert "Revert "Revert "Revert "gpu: nvgpu: New allocator for VA space""""
This reverts commit 2e5803d0f2b7d7a1577a40f45ab9f3b22ef2df80 since the issue seen with bug 200106514 is fixed with change http://git-master/r/#/c/752080/. Bug 200112195 Change-Id: I588151c2a7ea74bd89dc3fd48bb81ff2c49f5a0a Signed-off-by: Bharat Nihalani <bnihalani@nvidia.com> Reviewed-on: http://git-master/r/752503 Reviewed-by: Automatic_Commit_Validation_User Reviewed-by: Terje Bergstrom <tbergstrom@nvidia.com> Tested-by: Terje Bergstrom <tbergstrom@nvidia.com>
Diffstat (limited to 'drivers/gpu/nvgpu/gk20a/as_gk20a.c')
-rw-r--r--drivers/gpu/nvgpu/gk20a/as_gk20a.c15
1 files changed, 4 insertions, 11 deletions
diff --git a/drivers/gpu/nvgpu/gk20a/as_gk20a.c b/drivers/gpu/nvgpu/gk20a/as_gk20a.c
index 63569008..eb18fa65 100644
--- a/drivers/gpu/nvgpu/gk20a/as_gk20a.c
+++ b/drivers/gpu/nvgpu/gk20a/as_gk20a.c
@@ -199,21 +199,14 @@ static int gk20a_as_ioctl_get_va_regions(
199 199
200 for (i = 0; i < write_entries; ++i) { 200 for (i = 0; i < write_entries; ++i) {
201 struct nvgpu_as_va_region region; 201 struct nvgpu_as_va_region region;
202 u32 base, limit;
203 202
204 memset(&region, 0, sizeof(struct nvgpu_as_va_region)); 203 memset(&region, 0, sizeof(struct nvgpu_as_va_region));
205 204
206 if (!vm->vma[i].constraint.enable) {
207 base = vm->vma[i].base;
208 limit = vm->vma[i].limit;
209 } else {
210 base = vm->vma[i].constraint.base;
211 limit = vm->vma[i].constraint.limit;
212 }
213
214 region.page_size = vm->gmmu_page_sizes[i]; 205 region.page_size = vm->gmmu_page_sizes[i];
215 region.offset = (u64)base * region.page_size; 206 region.offset = vm->vma[i].base;
216 region.pages = limit - base; /* NOTE: limit is exclusive */ 207 /* No __aeabi_uldivmod() on some platforms... */
208 region.pages = (vm->vma[i].end - vm->vma[i].start) >>
209 ilog2(region.page_size);
217 210
218 if (copy_to_user(user_region_ptr + i, &region, sizeof(region))) 211 if (copy_to_user(user_region_ptr + i, &region, sizeof(region)))
219 return -EFAULT; 212 return -EFAULT;