remoteproc: free carveout memories only after unmapping them
It is not preferable to have the allocated pages for carveout memories freed before they are unmapped. The code that deals with the cleanup of carveout memories is therefore moved after the corresponding mapping entries were cleaned up. This is mostly a no-op since the remote processors are already stopped when the cleanup function is called, but this will make the cleanup code follow the exact reverse path of allocation. Signed-off-by: Suman Anna <s-anna@ti.com> Signed-off-by: Ohad Ben-Cohen <ohad@wizery.com>
This commit is contained in:
Родитель
e4760363ea
Коммит
b6356a013a
|
@ -762,13 +762,6 @@ static void rproc_resource_cleanup(struct rproc *rproc)
|
|||
kfree(entry);
|
||||
}
|
||||
|
||||
/* clean up carveout allocations */
|
||||
list_for_each_entry_safe(entry, tmp, &rproc->carveouts, node) {
|
||||
dma_free_coherent(dev->parent, entry->len, entry->va, entry->dma);
|
||||
list_del(&entry->node);
|
||||
kfree(entry);
|
||||
}
|
||||
|
||||
/* clean up iommu mapping entries */
|
||||
list_for_each_entry_safe(entry, tmp, &rproc->mappings, node) {
|
||||
size_t unmapped;
|
||||
|
@ -783,6 +776,13 @@ static void rproc_resource_cleanup(struct rproc *rproc)
|
|||
list_del(&entry->node);
|
||||
kfree(entry);
|
||||
}
|
||||
|
||||
/* clean up carveout allocations */
|
||||
list_for_each_entry_safe(entry, tmp, &rproc->carveouts, node) {
|
||||
dma_free_coherent(dev->parent, entry->len, entry->va, entry->dma);
|
||||
list_del(&entry->node);
|
||||
kfree(entry);
|
||||
}
|
||||
}
|
||||
|
||||
/*
|
||||
|
|
Загрузка…
Ссылка в новой задаче