DragonFlyBSD Kernel Audit
DF-1729 / fix.diff
← back to finding ↓ download raw
diff --git a/sys/dev/drm/ttm/ttm_bo_vm.c b/sys/dev/drm/ttm/ttm_bo_vm.c
--- a/sys/dev/drm/ttm/ttm_bo_vm.c
+++ b/sys/dev/drm/ttm/ttm_bo_vm.c
@@ -662,11 +662,13 @@
 	cvma.vm_page_prot = 0;
 #endif
 
-	if (bo->mem.bus.is_iomem) {
-#ifdef __DragonFly__
-		m = vm_phys_fictitious_to_vm_page(bo->mem.bus.base +
-						  bo->mem.bus.offset + offset);
-		pmap_page_set_memattr(m, ttm_io_prot(bo->mem.placement, 0));
+	if (bo->mem.bus.is_iomem) {
+#ifdef __DragonFly__
+		m = vm_phys_fictitious_to_vm_page(bo->mem.bus.base +
+						  bo->mem.bus.offset + offset);
+		if (m == NULL)
+			return VM_FAULT_NOPAGE;
+		pmap_page_set_memattr(m, ttm_io_prot(bo->mem.placement, 0));
 #endif
 		cvma.vm_page_prot = ttm_io_prot(bo->mem.placement,
 						cvma.vm_page_prot);