|
@@ -365,7 +365,7 @@ nouveau_vm_create(struct nouveau_vmmgr *vmm, u64 offset, u64 length,
|
|
|
vm->fpde = offset >> (vmm->pgt_bits + 12);
|
|
|
vm->lpde = (offset + length - 1) >> (vmm->pgt_bits + 12);
|
|
|
|
|
|
- vm->pgt = kcalloc(vm->lpde - vm->fpde + 1, sizeof(*vm->pgt), GFP_KERNEL);
|
|
|
+ vm->pgt = vzalloc((vm->lpde - vm->fpde + 1) * sizeof(*vm->pgt));
|
|
|
if (!vm->pgt) {
|
|
|
kfree(vm);
|
|
|
return -ENOMEM;
|
|
@@ -374,7 +374,7 @@ nouveau_vm_create(struct nouveau_vmmgr *vmm, u64 offset, u64 length,
|
|
|
ret = nouveau_mm_init(&vm->mm, mm_offset >> 12, mm_length >> 12,
|
|
|
block >> 12);
|
|
|
if (ret) {
|
|
|
- kfree(vm->pgt);
|
|
|
+ vfree(vm->pgt);
|
|
|
kfree(vm);
|
|
|
return ret;
|
|
|
}
|
|
@@ -450,7 +450,7 @@ nouveau_vm_del(struct nouveau_vm *vm)
|
|
|
}
|
|
|
|
|
|
nouveau_mm_fini(&vm->mm);
|
|
|
- kfree(vm->pgt);
|
|
|
+ vfree(vm->pgt);
|
|
|
kfree(vm);
|
|
|
}
|
|
|
|