[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
[PATCH 3/7] util: make a copy of iova_tree_remove_parameter
From: |
Eugenio Pérez |
Subject: |
[PATCH 3/7] util: make a copy of iova_tree_remove_parameter |
Date: |
Fri, 19 Aug 2022 18:53:53 +0200 |
It's convenient to call iova_tree_remove from a map returned from
iova_tree_find or iova_tree_find_iova. With the current code this is not
possible, since we will free it, and then we will try to search for it
again.
Fix it making a copy of the argument. Not applying a fixes tag, since
there is no use like that at the moment.
Signed-off-by: Eugenio Pérez <eperezma@redhat.com>
---
util/iova-tree.c | 4 +++-
1 file changed, 3 insertions(+), 1 deletion(-)
diff --git a/util/iova-tree.c b/util/iova-tree.c
index fee530a579..713e3edd7b 100644
--- a/util/iova-tree.c
+++ b/util/iova-tree.c
@@ -166,9 +166,11 @@ void iova_tree_foreach(IOVATree *tree, iova_tree_iterator
iterator)
void iova_tree_remove(IOVATree *tree, const DMAMap *map)
{
+ /* Just in case caller is calling iova_tree_remove from a result of find */
+ const DMAMap needle = *map;
const DMAMap *overlap;
- while ((overlap = iova_tree_find(tree, map))) {
+ while ((overlap = iova_tree_find(tree, &needle))) {
g_tree_remove(tree->tree, overlap);
}
}
--
2.31.1
- [PATCH 0/7] vDPA shadow virtqueue iova tree fixes., Eugenio Pérez, 2022/08/19
- [PATCH 2/7] vdpa: do not save failed dma maps in SVQ iova tree, Eugenio Pérez, 2022/08/19
- [PATCH 5/7] vdpa: Make SVQ vring unmapping return void, Eugenio Pérez, 2022/08/19
- [PATCH 7/7] vdpa: Use ring hwaddr at vhost_vdpa_svq_unmap_ring, Eugenio Pérez, 2022/08/19
- [PATCH 6/7] vhost: Always store new kick fd on vhost_svq_set_svq_kick_fd, Eugenio Pérez, 2022/08/19
- [PATCH 3/7] util: make a copy of iova_tree_remove_parameter,
Eugenio Pérez <=
- [PATCH 1/7] vdpa: Skip the maps not in the iova tree, Eugenio Pérez, 2022/08/19
- [PATCH 4/7] vdpa: Remove SVQ vring from iova_tree at shutdown, Eugenio Pérez, 2022/08/19