[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
[PULL 24/28] xen: mapcache: Break out xen_invalidate_map_cache_single()
From: |
Philippe Mathieu-Daudé |
Subject: |
[PULL 24/28] xen: mapcache: Break out xen_invalidate_map_cache_single() |
Date: |
Mon, 6 May 2024 14:37:24 +0200 |
From: "Edgar E. Iglesias" <edgar.iglesias@amd.com>
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>
---
hw/xen/xen-mapcache.c | 25 +++++++++++++++----------
1 file changed, 15 insertions(+), 10 deletions(-)
diff --git a/hw/xen/xen-mapcache.c b/hw/xen/xen-mapcache.c
index 3e6a1a0a93..c8a0f4fbc2 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(mc);
- mapcache_lock(mapcache);
-
- 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,
--
2.41.0
- [PULL 14/28] user: Declare get_task_state() once in 'accel/tcg/vcpu-state.h', (continued)
- [PULL 14/28] user: Declare get_task_state() once in 'accel/tcg/vcpu-state.h', Philippe Mathieu-Daudé, 2024/05/06
- [PULL 15/28] user: Use get_task_state() helper, Philippe Mathieu-Daudé, 2024/05/06
- [PULL 16/28] softmmu: let qemu_map_ram_ptr() use qemu_ram_ptr_length(), Philippe Mathieu-Daudé, 2024/05/06
- [PULL 17/28] xen: let xen_ram_addr_from_mapcache() return -1 in case of not found entry, Philippe Mathieu-Daudé, 2024/05/06
- [PULL 20/28] xen: mapcache: Refactor xen_remap_bucket for multi-instance, Philippe Mathieu-Daudé, 2024/05/06
- [PULL 18/28] xen: mapcache: Refactor lock functions for multi-instance, Philippe Mathieu-Daudé, 2024/05/06
- [PULL 19/28] xen: mapcache: Refactor xen_map_cache for multi-instance, Philippe Mathieu-Daudé, 2024/05/06
- [PULL 22/28] xen: mapcache: Refactor xen_replace_cache_entry_unlocked, Philippe Mathieu-Daudé, 2024/05/06
- [PULL 21/28] xen: mapcache: Break out xen_ram_addr_from_mapcache_single, Philippe Mathieu-Daudé, 2024/05/06
- [PULL 23/28] xen: mapcache: Refactor xen_invalidate_map_cache_entry_unlocked, Philippe Mathieu-Daudé, 2024/05/06
- [PULL 24/28] xen: mapcache: Break out xen_invalidate_map_cache_single(),
Philippe Mathieu-Daudé <=
- [PULL 25/28] xen: mapcache: Break out xen_map_cache_init_single(), Philippe Mathieu-Daudé, 2024/05/06
- [PULL 28/28] MAINTAINERS: Update my email address, Philippe Mathieu-Daudé, 2024/05/06
- [PULL 27/28] MAINTAINERS: Update Aleksandar Rikalo email, Philippe Mathieu-Daudé, 2024/05/06
- [PULL 26/28] softmmu: Pass RAM MemoryRegion and is_write in xen_map_cache(), Philippe Mathieu-Daudé, 2024/05/06
- Re: [PULL 00/28] Accelerator patches for 2024-05-06, Philippe Mathieu-Daudé, 2024/05/06
- Re: [PULL 00/28] Accelerator patches for 2024-05-06, Richard Henderson, 2024/05/06