summaryrefslogtreecommitdiffstats
path: root/drivers/gpu/nvgpu/common/as.c
diff options
context:
space:
mode:
Diffstat (limited to 'drivers/gpu/nvgpu/common/as.c')
-rw-r--r--drivers/gpu/nvgpu/common/as.c19
1 files changed, 8 insertions, 11 deletions
diff --git a/drivers/gpu/nvgpu/common/as.c b/drivers/gpu/nvgpu/common/as.c
index 481fb807..99d18195 100644
--- a/drivers/gpu/nvgpu/common/as.c
+++ b/drivers/gpu/nvgpu/common/as.c
@@ -43,7 +43,6 @@ static int gk20a_vm_alloc_share(struct gk20a_as_share *as_share,
43 struct mm_gk20a *mm = &g->mm; 43 struct mm_gk20a *mm = &g->mm;
44 struct vm_gk20a *vm; 44 struct vm_gk20a *vm;
45 char name[32]; 45 char name[32];
46 int err;
47 const bool userspace_managed = 46 const bool userspace_managed =
48 (flags & NVGPU_GPU_IOCTL_ALLOC_AS_FLAGS_USERSPACE_MANAGED) != 0; 47 (flags & NVGPU_GPU_IOCTL_ALLOC_AS_FLAGS_USERSPACE_MANAGED) != 0;
49 48
@@ -60,7 +59,13 @@ static int gk20a_vm_alloc_share(struct gk20a_as_share *as_share,
60 return -EINVAL; 59 return -EINVAL;
61 } 60 }
62 61
63 vm = nvgpu_kzalloc(g, sizeof(*vm)); 62 snprintf(name, sizeof(name), "as_%d", as_share->id);
63
64 vm = nvgpu_vm_init(g, big_page_size,
65 big_page_size << 10,
66 mm->channel.kernel_size,
67 mm->channel.user_size + mm->channel.kernel_size,
68 !mm->disable_bigpage, userspace_managed, name);
64 if (!vm) 69 if (!vm)
65 return -ENOMEM; 70 return -ENOMEM;
66 71
@@ -68,15 +73,7 @@ static int gk20a_vm_alloc_share(struct gk20a_as_share *as_share,
68 vm->as_share = as_share; 73 vm->as_share = as_share;
69 vm->enable_ctag = true; 74 vm->enable_ctag = true;
70 75
71 snprintf(name, sizeof(name), "as_%d", as_share->id); 76 return 0;
72
73 err = nvgpu_init_vm(mm, vm, big_page_size,
74 big_page_size << 10,
75 mm->channel.kernel_size,
76 mm->channel.user_size + mm->channel.kernel_size,
77 !mm->disable_bigpage, userspace_managed, name);
78
79 return err;
80} 77}
81 78
82int gk20a_as_alloc_share(struct gk20a *g, 79int gk20a_as_alloc_share(struct gk20a *g,