diff options
author | Edgar E. Iglesias <edgar.iglesias@amd.com> | 2024-04-30 18:49:31 +0200 |
---|---|---|
committer | Philippe Mathieu-Daudé <philmd@linaro.org> | 2024-05-06 14:41:39 +0200 |
commit | 946b4c9bc319fd8a36dad8fad4f301856315ba8f (patch) | |
tree | 75678b4b9a2a4af24f553d4e70dc80ab5a6218a4 /hw/xen | |
parent | 87b5a05a853c70756fc94f53e68587c00370aa0d (diff) | |
download | qemu-946b4c9bc319fd8a36dad8fad4f301856315ba8f.zip qemu-946b4c9bc319fd8a36dad8fad4f301856315ba8f.tar.gz qemu-946b4c9bc319fd8a36dad8fad4f301856315ba8f.tar.bz2 |
xen: mapcache: Break out xen_invalidate_map_cache_single()
Break out xen_invalidate_map_cache_single().
No functional changes.
Signed-off-by: Edgar E. Iglesias <edgar.iglesias@amd.com>
Reviewed-by: Stefano Stabellini <sstabellini@kernel.org>
Reviewed-by: Philippe Mathieu-Daudé <philmd@linaro.org>
Message-ID: <20240430164939.925307-10-edgar.iglesias@gmail.com>
Signed-off-by: Philippe Mathieu-Daudé <philmd@linaro.org>
Diffstat (limited to 'hw/xen')
-rw-r--r-- | hw/xen/xen-mapcache.c | 25 |
1 files changed, 15 insertions, 10 deletions
diff --git a/hw/xen/xen-mapcache.c b/hw/xen/xen-mapcache.c index 3e6a1a0..c8a0f4f 100644 --- a/hw/xen/xen-mapcache.c +++ b/hw/xen/xen-mapcache.c @@ -513,17 +513,14 @@ void coroutine_mixed_fn xen_invalidate_map_cache_entry(uint8_t *buffer) } } -void xen_invalidate_map_cache(void) +static void xen_invalidate_map_cache_single(MapCache *mc) { unsigned long i; MapCacheRev *reventry; - /* Flush pending AIO before destroying the mapcache */ - bdrv_drain_all(); - - mapcache_lock(mapcache); + mapcache_lock(mc); - QTAILQ_FOREACH(reventry, &mapcache->locked_entries, next) { + QTAILQ_FOREACH(reventry, &mc->locked_entries, next) { if (!reventry->dma) { continue; } @@ -531,8 +528,8 @@ void xen_invalidate_map_cache(void) reventry->vaddr_req); } - for (i = 0; i < mapcache->nr_buckets; i++) { - MapCacheEntry *entry = &mapcache->entry[i]; + for (i = 0; i < mc->nr_buckets; i++) { + MapCacheEntry *entry = &mc->entry[i]; if (entry->vaddr_base == NULL) { continue; @@ -553,9 +550,17 @@ void xen_invalidate_map_cache(void) entry->valid_mapping = NULL; } - mapcache->last_entry = NULL; + mc->last_entry = NULL; - mapcache_unlock(mapcache); + mapcache_unlock(mc); +} + +void xen_invalidate_map_cache(void) +{ + /* Flush pending AIO before destroying the mapcache */ + bdrv_drain_all(); + + xen_invalidate_map_cache_single(mapcache); } static uint8_t *xen_replace_cache_entry_unlocked(MapCache *mc, |