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);