- size = round_page_32(size);
- kmem_free(kernel_map, address, size); // Just panic if address is 0
-}
+done:
+ if (obj) obj->release();
+found:
+ if (mapper)
+ {
+ if (!mapper->fAllocName)
+ {
+ char name[MACH_ZONE_NAME_MAX_LEN];
+ char kmodname[KMOD_MAX_NAME];
+ vm_tag_t tag;
+ uint32_t kmodid;
+
+ tag = IOMemoryTag(kernel_map);
+ if (!(kmodid = vm_tag_get_kext(tag, &kmodname[0], KMOD_MAX_NAME)))
+ {
+ snprintf(kmodname, sizeof(kmodname), "%d", tag);
+ }
+ snprintf(name, sizeof(name), "%s.DMA.%s", kmodname, device->getName());
+ mapper->fAllocName = kern_allocation_name_allocate(name, 16);
+ }
+ }