summaryrefslogtreecommitdiffstats
path: root/drivers/gpu/nvgpu/common/mm
diff options
context:
space:
mode:
authorDavid Nieto <dmartineznie@nvidia.com>2017-11-30 14:05:14 -0500
committerDeepak Bhosale <dbhosale@nvidia.com>2017-12-05 13:25:37 -0500
commit1b125d8cbe05766c0cfb0ba9cac2bf46ffef7c3a (patch)
tree8566528813e08666431abea7a0063816a7b15156 /drivers/gpu/nvgpu/common/mm
parentfa2a3e2d3dd780d409e7673e7b47a34fd1cafb4f (diff)
gpu: nvgpu: fix indexing in locate pte function
The current code does not properly calculate the indexes within the PDE to access the proper entry, and it has a bug in assignement of the big page entries. This change fixes the issue by: (1) Passing a pointer to the level structure and dereferencing the index offset to the next level. (2) Changing the format of the address. (3) Ensuring big pages are only selected if their address is set. Bug 200364599 Change-Id: I46e32560ee341d8cfc08c077282dcb5549d2a140 Signed-off-by: David Nieto <dmartineznie@nvidia.com> Reviewed-on: https://git-master.nvidia.com/r/1610562 Reviewed-by: Automatic_Commit_Validation_User Reviewed-by: Deepak Bhosale <dbhosale@nvidia.com>
Diffstat (limited to 'drivers/gpu/nvgpu/common/mm')
-rw-r--r--drivers/gpu/nvgpu/common/mm/gmmu.c2
1 files changed, 1 insertions, 1 deletions
diff --git a/drivers/gpu/nvgpu/common/mm/gmmu.c b/drivers/gpu/nvgpu/common/mm/gmmu.c
index 62c84e96..22f73083 100644
--- a/drivers/gpu/nvgpu/common/mm/gmmu.c
+++ b/drivers/gpu/nvgpu/common/mm/gmmu.c
@@ -838,7 +838,7 @@ static int __nvgpu_locate_pte(struct gk20a *g, struct vm_gk20a *vm,
838 if (!pd_next->mem) 838 if (!pd_next->mem)
839 return -EINVAL; 839 return -EINVAL;
840 840
841 attrs->pgsz = l->get_pgsz(g, pd, pd_idx); 841 attrs->pgsz = l->get_pgsz(g, l, pd, pd_idx);
842 842
843 if (attrs->pgsz >= gmmu_nr_page_sizes) 843 if (attrs->pgsz >= gmmu_nr_page_sizes)
844 return -EINVAL; 844 return -EINVAL;