Sun Jan 11 06:25:31 2015 UTC ()
Pull up following revision(s) (requested by chs in ticket #402):
	sys/external/bsd/drm/dist/bsd-core/drm_bufs.c: revision 1.13
initialize "addr" before passing its address to uvm_mmap_dev().
from Onno van der Linden in PR 49536.


(snj)
diff -r1.11.14.1 -r1.11.14.2 src/sys/external/bsd/drm/dist/bsd-core/drm_bufs.c

cvs diff -r1.11.14.1 -r1.11.14.2 src/sys/external/bsd/drm/dist/bsd-core/drm_bufs.c (expand / switch to unified diff)

--- src/sys/external/bsd/drm/dist/bsd-core/drm_bufs.c 2014/12/31 06:44:00 1.11.14.1
+++ src/sys/external/bsd/drm/dist/bsd-core/drm_bufs.c 2015/01/11 06:25:31 1.11.14.2
@@ -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;