#include <core/memory.h>
 #include <core/notify.h>
-#include <subdev/bar.h>
-#include <subdev/mmu.h>
 
 static void
 nvkm_fault_ntfy_fini(struct nvkm_event *event, int type, int index)
 {
        struct nvkm_subdev *subdev = &fault->subdev;
        struct nvkm_device *device = subdev->device;
-       struct nvkm_vmm *bar2 = nvkm_bar_bar2_vmm(device);
        struct nvkm_fault_buffer *buffer;
        int ret;
 
        if (ret)
                return ret;
 
-       ret = nvkm_vmm_get(bar2, 12, nvkm_memory_size(buffer->mem),
-                          &buffer->vma);
-       if (ret)
-               return ret;
+       /* Pin fault buffer in BAR2. */
+       buffer->addr = nvkm_memory_bar2(buffer->mem);
+       if (buffer->addr == ~0ULL)
+               return -EFAULT;
 
-       return nvkm_memory_map(buffer->mem, 0, bar2, buffer->vma, NULL, 0);
+       return 0;
 }
 
 static int
 static void *
 nvkm_fault_dtor(struct nvkm_subdev *subdev)
 {
-       struct nvkm_vmm *bar2 = nvkm_bar_bar2_vmm(subdev->device);
        struct nvkm_fault *fault = nvkm_fault(subdev);
        int i;
 
 
        for (i = 0; i < fault->buffer_nr; i++) {
                if (fault->buffer[i]) {
-                       nvkm_vmm_put(bar2, &fault->buffer[i]->vma);
                        nvkm_memory_unref(&fault->buffer[i]->mem);
                        kfree(fault->buffer[i]);
                }
 
  */
 #include "priv.h"
 
-#include <subdev/mmu.h>
-
 static void
 gp100_fault_buffer_fini(struct nvkm_fault_buffer *buffer)
 {
 gp100_fault_buffer_init(struct nvkm_fault_buffer *buffer)
 {
        struct nvkm_device *device = buffer->fault->subdev.device;
-       nvkm_wr32(device, 0x002a74, upper_32_bits(buffer->vma->addr));
-       nvkm_wr32(device, 0x002a70, lower_32_bits(buffer->vma->addr));
+       nvkm_wr32(device, 0x002a74, upper_32_bits(buffer->addr));
+       nvkm_wr32(device, 0x002a70, lower_32_bits(buffer->addr));
        nvkm_mask(device, 0x002a70, 0x00000001, 0x00000001);
 }
 
 
        const u32 foff = buffer->id * 0x14;
 
        nvkm_mask(device, 0x100e34 + foff, 0xc0000000, 0x40000000);
-       nvkm_wr32(device, 0x100e28 + foff, upper_32_bits(buffer->vma->addr));
-       nvkm_wr32(device, 0x100e24 + foff, lower_32_bits(buffer->vma->addr));
+       nvkm_wr32(device, 0x100e28 + foff, upper_32_bits(buffer->addr));
+       nvkm_wr32(device, 0x100e24 + foff, lower_32_bits(buffer->addr));
        nvkm_mask(device, 0x100e34 + foff, 0x80000000, 0x80000000);
        nvkm_mask(device, 0x100a2c, intr, intr);
 }
 
        int id;
        int entries;
        struct nvkm_memory *mem;
-       struct nvkm_vma *vma;
+       u64 addr;
 };
 
 int nvkm_fault_new_(const struct nvkm_fault_func *, struct nvkm_device *,