| @@ -1112,26 +1112,27 @@ int drm_mapbufs(struct drm_device *dev, | | | @@ -1112,26 +1112,27 @@ int drm_mapbufs(struct drm_device *dev, |
1112 | #if defined(__FreeBSD__) | | 1112 | #if defined(__FreeBSD__) |
1113 | vaddr = round_page((vm_offset_t)vms->vm_daddr + MAXDSIZ); | | 1113 | vaddr = round_page((vm_offset_t)vms->vm_daddr + MAXDSIZ); |
1114 | #if __FreeBSD_version >= 600023 | | 1114 | #if __FreeBSD_version >= 600023 |
1115 | retcode = vm_mmap(&vms->vm_map, &vaddr, size, PROT_READ | PROT_WRITE, | | 1115 | retcode = vm_mmap(&vms->vm_map, &vaddr, size, PROT_READ | PROT_WRITE, |
1116 | VM_PROT_ALL, MAP_SHARED | MAP_NOSYNC, OBJT_DEVICE, dev->devnode, foff); | | 1116 | VM_PROT_ALL, MAP_SHARED | MAP_NOSYNC, OBJT_DEVICE, dev->devnode, foff); |
1117 | #else | | 1117 | #else |
1118 | retcode = vm_mmap(&vms->vm_map, &vaddr, size, PROT_READ | PROT_WRITE, | | 1118 | retcode = vm_mmap(&vms->vm_map, &vaddr, size, PROT_READ | PROT_WRITE, |
1119 | VM_PROT_ALL, MAP_SHARED | MAP_NOSYNC, SLIST_FIRST(&dev->devnode->si_hlist), | | 1119 | VM_PROT_ALL, MAP_SHARED | MAP_NOSYNC, SLIST_FIRST(&dev->devnode->si_hlist), |
1120 | foff); | | 1120 | foff); |
1121 | #endif | | 1121 | #endif |
1122 | #elif defined(__NetBSD__) | | 1122 | #elif defined(__NetBSD__) |
1123 | /* XXXNETBSD */ | | 1123 | /* XXXNETBSD */ |
1124 | rsize = round_page(size); | | 1124 | rsize = round_page(size); |
| | | 1125 | addr = NULL; |
1125 | retcode = uvm_mmap_dev(curproc, &addr, rsize, dev->kdev, foff); | | 1126 | retcode = uvm_mmap_dev(curproc, &addr, rsize, dev->kdev, foff); |
1126 | vaddr = (vaddr_t)addr; | | 1127 | vaddr = (vaddr_t)addr; |
1127 | DRM_DEBUG("mmap %#lx/%#lx foff %#llx\n", vaddr, rsize, (long long)foff); | | 1128 | DRM_DEBUG("mmap %#lx/%#lx foff %#llx\n", vaddr, rsize, (long long)foff); |
1128 | #endif | | 1129 | #endif |
1129 | if (retcode) | | 1130 | if (retcode) |
1130 | goto done; | | 1131 | goto done; |
1131 | | | 1132 | |
1132 | request->virtual = (void *)vaddr; | | 1133 | request->virtual = (void *)vaddr; |
1133 | | | 1134 | |
1134 | for (i = 0; i < dma->buf_count; i++) { | | 1135 | for (i = 0; i < dma->buf_count; i++) { |
1135 | if (DRM_COPY_TO_USER(&request->list[i].idx, | | 1136 | if (DRM_COPY_TO_USER(&request->list[i].idx, |
1136 | &dma->buflist[i]->idx, sizeof(request->list[0].idx))) { | | 1137 | &dma->buflist[i]->idx, sizeof(request->list[0].idx))) { |
1137 | retcode = EFAULT; | | 1138 | retcode = EFAULT; |