xen/hvm: correct reporting of modified memory under physmap during migration

When global_log_dirty is enabled VRAM modification tracking never
worked correctly. The address that is passed to xen_hvm_modified_memory()
is not the effective PFN but RAM block address which is not the same
for VRAM.

We need to make a translation for this address into PFN using
physmap. Since there is no way to access physmap properly inside
xen_hvm_modified_memory() let's make it a global structure.

Signed-off-by: Igor Druzhinin <igor.druzhinin@citrix.com>
Acked-by: Anthony PERARD <anthony.perard@citrix.com>
Signed-off-by: Stefano Stabellini <sstabellini@kernel.org>
This commit is contained in:
Igor Druzhinin 2018-04-25 14:46:47 +01:00 committed by Stefano Stabellini
parent c181ddaa17
commit 04a8f72e87
3 changed files with 22 additions and 22 deletions

View file

@ -9,9 +9,8 @@
#ifndef XEN_MAPCACHE_H
#define XEN_MAPCACHE_H
typedef hwaddr (*phys_offset_to_gaddr_t)(hwaddr start_addr,
ram_addr_t size,
void *opaque);
typedef hwaddr (*phys_offset_to_gaddr_t)(hwaddr phys_offset,
ram_addr_t size);
#ifdef CONFIG_XEN
void xen_map_cache_init(phys_offset_to_gaddr_t f,