- /*
- * VM is not initialized. Grab memory.
- */
- start = virtual_avail;
- virtual_avail += round_page(size);
- }
- else {
- (void) kmem_alloc_pageable(kernel_map, &start, round_page(size));
+ /*
+ * VM is not initialized. Grab memory.
+ */
+ start = virtual_avail;
+ virtual_avail += round_page(size);
+
+#if KASAN
+ kasan_notify_address(start, size);
+#endif
+ (void) pmap_map_bd(start, phys_addr, phys_addr + round_page(size),
+ VM_PROT_READ | VM_PROT_WRITE,
+ flags);
+ } else {
+ (void) kmem_alloc_pageable(kernel_map, &start, round_page(size), VM_KERN_MEMORY_IOKIT);
+ (void) pmap_map(start, phys_addr, phys_addr + round_page(size),
+ VM_PROT_READ | VM_PROT_WRITE,
+ flags);