dev/pci: Unmap memory on allocation failure
This commit is contained in:
+7
-1
@@ -224,8 +224,14 @@ errno_t pci_setup_msix(struct pci_device* dev, struct irq_line** out) {
|
||||
return ENOMEM;
|
||||
for (size_t i = 0; i < map_len; i += page_size) {
|
||||
status = pmap_map(&kernel_vma.pmap, vaddr + i, page_base + i, PTE_READ | PTE_WRITE, CACHE_MMIO);
|
||||
if (status)
|
||||
if (status) {
|
||||
while (i) {
|
||||
i -= page_size;
|
||||
pmap_unmap(&kernel_vma.pmap, vaddr + i);
|
||||
}
|
||||
vm_free(vaddr, map_len);
|
||||
return status;
|
||||
}
|
||||
}
|
||||
void* entry = (void*)(vaddr + page_offset);
|
||||
|
||||
|
||||
Reference in New Issue
Block a user