| .. | .. |
|---|
| 105 | 105 | } |
|---|
| 106 | 106 | |
|---|
| 107 | 107 | void |
|---|
| 108 | | -nvif_vmm_fini(struct nvif_vmm *vmm) |
|---|
| 108 | +nvif_vmm_dtor(struct nvif_vmm *vmm) |
|---|
| 109 | 109 | { |
|---|
| 110 | 110 | kfree(vmm->page); |
|---|
| 111 | | - nvif_object_fini(&vmm->object); |
|---|
| 111 | + nvif_object_dtor(&vmm->object); |
|---|
| 112 | 112 | } |
|---|
| 113 | 113 | |
|---|
| 114 | 114 | int |
|---|
| 115 | | -nvif_vmm_init(struct nvif_mmu *mmu, s32 oclass, u64 addr, u64 size, |
|---|
| 116 | | - void *argv, u32 argc, struct nvif_vmm *vmm) |
|---|
| 115 | +nvif_vmm_ctor(struct nvif_mmu *mmu, const char *name, s32 oclass, bool managed, |
|---|
| 116 | + u64 addr, u64 size, void *argv, u32 argc, struct nvif_vmm *vmm) |
|---|
| 117 | 117 | { |
|---|
| 118 | 118 | struct nvif_vmm_v0 *args; |
|---|
| 119 | 119 | u32 argn = sizeof(*args) + argc; |
|---|
| .. | .. |
|---|
| 125 | 125 | if (!(args = kmalloc(argn, GFP_KERNEL))) |
|---|
| 126 | 126 | return -ENOMEM; |
|---|
| 127 | 127 | args->version = 0; |
|---|
| 128 | + args->managed = managed; |
|---|
| 128 | 129 | args->addr = addr; |
|---|
| 129 | 130 | args->size = size; |
|---|
| 130 | 131 | memcpy(args->data, argv, argc); |
|---|
| 131 | 132 | |
|---|
| 132 | | - ret = nvif_object_init(&mmu->object, 0, oclass, args, argn, |
|---|
| 133 | | - &vmm->object); |
|---|
| 133 | + ret = nvif_object_ctor(&mmu->object, name ? name : "nvifVmm", 0, |
|---|
| 134 | + oclass, args, argn, &vmm->object); |
|---|
| 134 | 135 | if (ret) |
|---|
| 135 | 136 | goto done; |
|---|
| 136 | 137 | |
|---|
| .. | .. |
|---|
| 162 | 163 | |
|---|
| 163 | 164 | done: |
|---|
| 164 | 165 | if (ret) |
|---|
| 165 | | - nvif_vmm_fini(vmm); |
|---|
| 166 | + nvif_vmm_dtor(vmm); |
|---|
| 166 | 167 | kfree(args); |
|---|
| 167 | 168 | return ret; |
|---|
| 168 | 169 | } |
|---|