summaryrefslogtreecommitdiffstats
path: root/drivers/gpu/nvgpu/gk20a/as_gk20a.c
diff options
context:
space:
mode:
Diffstat (limited to 'drivers/gpu/nvgpu/gk20a/as_gk20a.c')
-rw-r--r--drivers/gpu/nvgpu/gk20a/as_gk20a.c10
1 files changed, 7 insertions, 3 deletions
diff --git a/drivers/gpu/nvgpu/gk20a/as_gk20a.c b/drivers/gpu/nvgpu/gk20a/as_gk20a.c
index 3d690e01..038fa4c8 100644
--- a/drivers/gpu/nvgpu/gk20a/as_gk20a.c
+++ b/drivers/gpu/nvgpu/gk20a/as_gk20a.c
@@ -183,12 +183,16 @@ static int gk20a_as_ioctl_get_va_regions(
183 unsigned int write_entries; 183 unsigned int write_entries;
184 struct nvgpu_as_va_region __user *user_region_ptr; 184 struct nvgpu_as_va_region __user *user_region_ptr;
185 struct vm_gk20a *vm = as_share->vm; 185 struct vm_gk20a *vm = as_share->vm;
186 int page_sizes = gmmu_nr_page_sizes;
186 187
187 gk20a_dbg_fn(""); 188 gk20a_dbg_fn("");
188 189
190 if (!vm->big_pages)
191 page_sizes--;
192
189 write_entries = args->buf_size / sizeof(struct nvgpu_as_va_region); 193 write_entries = args->buf_size / sizeof(struct nvgpu_as_va_region);
190 if (write_entries > gmmu_nr_page_sizes) 194 if (write_entries > page_sizes)
191 write_entries = gmmu_nr_page_sizes; 195 write_entries = page_sizes;
192 196
193 user_region_ptr = 197 user_region_ptr =
194 (struct nvgpu_as_va_region __user *)(uintptr_t)args->buf_addr; 198 (struct nvgpu_as_va_region __user *)(uintptr_t)args->buf_addr;
@@ -216,7 +220,7 @@ static int gk20a_as_ioctl_get_va_regions(
216 } 220 }
217 221
218 args->buf_size = 222 args->buf_size =
219 gmmu_nr_page_sizes * sizeof(struct nvgpu_as_va_region); 223 page_sizes * sizeof(struct nvgpu_as_va_region);
220 224
221 return 0; 225 return 0;
222} 226}