From cd3cf04cac5f740135becb0fc70a16cfb8c2aaba Mon Sep 17 00:00:00 2001 From: Deepak Nibade Date: Fri, 31 Mar 2017 18:11:04 +0530 Subject: gpu: nvgpu: use nvgpu list for VA lists Use nvgpu list APIs instead of linux list APIs for reserved VA list and buffer VA list Jira NVGPU-13 Change-Id: I83c02345d54bca03b00270563567227510cfce6b Signed-off-by: Deepak Nibade Reviewed-on: http://git-master/r/1454013 Reviewed-by: svccoveritychecker GVS: Gerrit_Virtual_Submit Reviewed-by: Terje Bergstrom --- drivers/gpu/nvgpu/gk20a/mm_gk20a.h | 22 ++++++++++++++++++---- 1 file changed, 18 insertions(+), 4 deletions(-) (limited to 'drivers/gpu/nvgpu/gk20a/mm_gk20a.h') diff --git a/drivers/gpu/nvgpu/gk20a/mm_gk20a.h b/drivers/gpu/nvgpu/gk20a/mm_gk20a.h index db99535a..3bca7aad 100644 --- a/drivers/gpu/nvgpu/gk20a/mm_gk20a.h +++ b/drivers/gpu/nvgpu/gk20a/mm_gk20a.h @@ -200,7 +200,7 @@ struct mapped_buffer_node { struct vm_gk20a *vm; struct rb_node node; struct list_head unmap_list; - struct list_head va_buffers_list; + struct nvgpu_list_node va_buffers_list; struct vm_reserved_va_node *va_node; u64 addr; u64 size; @@ -226,15 +226,29 @@ struct mapped_buffer_node { bool va_allocated; }; +static inline struct mapped_buffer_node * +mapped_buffer_node_from_va_buffers_list(struct nvgpu_list_node *node) +{ + return (struct mapped_buffer_node *) + ((uintptr_t)node - offsetof(struct mapped_buffer_node, va_buffers_list)); +}; + struct vm_reserved_va_node { - struct list_head reserved_va_list; - struct list_head va_buffers_list; + struct nvgpu_list_node reserved_va_list; + struct nvgpu_list_node va_buffers_list; u32 pgsz_idx; u64 vaddr_start; u64 size; bool sparse; }; +static inline struct vm_reserved_va_node * +vm_reserved_va_node_from_reserved_va_list(struct nvgpu_list_node *node) +{ + return (struct vm_reserved_va_node *) + ((uintptr_t)node - offsetof(struct vm_reserved_va_node, reserved_va_list)); +}; + struct gk20a_mmu_level { int hi_bit[2]; int lo_bit[2]; @@ -296,7 +310,7 @@ struct vm_gk20a { struct rb_root mapped_buffers; - struct list_head reserved_va_list; + struct nvgpu_list_node reserved_va_list; #ifdef CONFIG_TEGRA_GR_VIRTUALIZATION u64 handle; -- cgit v1.2.2