mirror of
https://github.com/Motorhead1991/qemu.git
synced 2025-08-09 18:44:58 -06:00
xen: mapcache: Refactor xen_replace_cache_entry_unlocked
Add MapCache argument to xen_replace_cache_entry_unlocked in preparation for supporting multiple map caches. No functional change. Signed-off-by: Edgar E. Iglesias <edgar.iglesias@amd.com> Reviewed-by: Philippe Mathieu-Daudé <philmd@linaro.org> Message-ID: <20240430164939.925307-8-edgar.iglesias@gmail.com> [PMD: Remove last global mapcache pointer, reported by sstabellini] Signed-off-by: Philippe Mathieu-Daudé <philmd@linaro.org>
This commit is contained in:
parent
9b00555354
commit
8be27f50ac
1 changed files with 6 additions and 4 deletions
|
@ -557,7 +557,8 @@ void xen_invalidate_map_cache(void)
|
||||||
mapcache_unlock(mapcache);
|
mapcache_unlock(mapcache);
|
||||||
}
|
}
|
||||||
|
|
||||||
static uint8_t *xen_replace_cache_entry_unlocked(hwaddr old_phys_addr,
|
static uint8_t *xen_replace_cache_entry_unlocked(MapCache *mc,
|
||||||
|
hwaddr old_phys_addr,
|
||||||
hwaddr new_phys_addr,
|
hwaddr new_phys_addr,
|
||||||
hwaddr size)
|
hwaddr size)
|
||||||
{
|
{
|
||||||
|
@ -579,7 +580,7 @@ static uint8_t *xen_replace_cache_entry_unlocked(hwaddr old_phys_addr,
|
||||||
cache_size += MCACHE_BUCKET_SIZE - (cache_size % MCACHE_BUCKET_SIZE);
|
cache_size += MCACHE_BUCKET_SIZE - (cache_size % MCACHE_BUCKET_SIZE);
|
||||||
}
|
}
|
||||||
|
|
||||||
entry = &mapcache->entry[address_index % mapcache->nr_buckets];
|
entry = &mc->entry[address_index % mc->nr_buckets];
|
||||||
while (entry && !(entry->paddr_index == address_index &&
|
while (entry && !(entry->paddr_index == address_index &&
|
||||||
entry->size == cache_size)) {
|
entry->size == cache_size)) {
|
||||||
entry = entry->next;
|
entry = entry->next;
|
||||||
|
@ -594,7 +595,7 @@ static uint8_t *xen_replace_cache_entry_unlocked(hwaddr old_phys_addr,
|
||||||
|
|
||||||
trace_xen_replace_cache_entry_dummy(old_phys_addr, new_phys_addr);
|
trace_xen_replace_cache_entry_dummy(old_phys_addr, new_phys_addr);
|
||||||
|
|
||||||
xen_remap_bucket(mapcache, entry, entry->vaddr_base,
|
xen_remap_bucket(mc, entry, entry->vaddr_base,
|
||||||
cache_size, address_index, false);
|
cache_size, address_index, false);
|
||||||
if (!test_bits(address_offset >> XC_PAGE_SHIFT,
|
if (!test_bits(address_offset >> XC_PAGE_SHIFT,
|
||||||
test_bit_size >> XC_PAGE_SHIFT,
|
test_bit_size >> XC_PAGE_SHIFT,
|
||||||
|
@ -615,7 +616,8 @@ uint8_t *xen_replace_cache_entry(hwaddr old_phys_addr,
|
||||||
uint8_t *p;
|
uint8_t *p;
|
||||||
|
|
||||||
mapcache_lock(mapcache);
|
mapcache_lock(mapcache);
|
||||||
p = xen_replace_cache_entry_unlocked(old_phys_addr, new_phys_addr, size);
|
p = xen_replace_cache_entry_unlocked(mapcache, old_phys_addr,
|
||||||
|
new_phys_addr, size);
|
||||||
mapcache_unlock(mapcache);
|
mapcache_unlock(mapcache);
|
||||||
return p;
|
return p;
|
||||||
}
|
}
|
||||||
|
|
Loading…
Add table
Add a link
Reference in a new issue