Index: kernel/generic/src/ddi/ddi.c
===================================================================
--- kernel/generic/src/ddi/ddi.c	(revision 566da7f8b9ae23f19ca44e238d25be2b62d26752)
+++ kernel/generic/src/ddi/ddi.c	(revision 2f11e6c9c9ca98eb176bceced095f74267a1d662)
@@ -229,7 +229,11 @@
     void *virt_ptr, uintptr_t bound)
 {
-	uintptr_t virt = (uintptr_t) -1;
-	int rc = physmem_map(ALIGN_DOWN(phys, FRAME_SIZE), pages, flags,
-	    &virt, bound);
+	uintptr_t virt;
+	int rc = copy_from_uspace(&virt, virt_ptr, sizeof(virt));
+	if (rc != EOK)
+		return rc;
+	
+	rc = physmem_map(ALIGN_DOWN(phys, FRAME_SIZE), pages, flags, &virt,
+	    bound);
 	if (rc != EOK)
 		return rc;
@@ -390,6 +394,10 @@
 			return rc;
 		
+		uintptr_t virt;
+		rc = copy_from_uspace(&virt, virt_ptr, sizeof(virt));
+		if (rc != EOK)
+			return rc;
+		
 		uintptr_t phys;
-		uintptr_t virt = (uintptr_t) -1;
 		rc = dmamem_map_anonymous(size, constraint, map_flags, flags,
 		    &phys, &virt, bound);
