diff options
author | Alex Williamson <alex.williamson@redhat.com> | 2016-10-31 09:53:03 -0600 |
---|---|---|
committer | Alex Williamson <alex.williamson@redhat.com> | 2016-10-31 09:53:03 -0600 |
commit | 21e00fa55f3fdfcbb20da7c6876c91ef3609b387 (patch) | |
tree | 3bf8840920a6a9a6a0064a4711ac0617ec15b95d /hw/vfio | |
parent | 0bb1137930f51a89fb1bfeb0c46aa68af0395167 (diff) | |
download | qemu-21e00fa55f3fdfcbb20da7c6876c91ef3609b387.zip qemu-21e00fa55f3fdfcbb20da7c6876c91ef3609b387.tar.gz qemu-21e00fa55f3fdfcbb20da7c6876c91ef3609b387.tar.bz2 |
memory: Replace skip_dump flag with "ram_device"
Setting skip_dump on a MemoryRegion allows us to modify one specific
code path, but the restriction we're trying to address encompasses
more than that. If we have a RAM MemoryRegion backed by a physical
device, it not only restricts our ability to dump that region, but
also affects how we should manipulate it. Here we recognize that
MemoryRegions do not change to sometimes allow dumps and other times
not, so we replace setting the skip_dump flag with a new initializer
so that we know exactly the type of region to which we're applying
this behavior.
Signed-off-by: Alex Williamson <alex.williamson@redhat.com>
Acked-by: Paolo Bonzini <pbonzini@redhat.com>
Diffstat (limited to 'hw/vfio')
-rw-r--r-- | hw/vfio/common.c | 9 | ||||
-rw-r--r-- | hw/vfio/spapr.c | 2 |
2 files changed, 5 insertions, 6 deletions
diff --git a/hw/vfio/common.c b/hw/vfio/common.c index 9505fb3..c764cb3 100644 --- a/hw/vfio/common.c +++ b/hw/vfio/common.c @@ -724,12 +724,11 @@ int vfio_region_mmap(VFIORegion *region) name = g_strdup_printf("%s mmaps[%d]", memory_region_name(region->mem), i); - memory_region_init_ram_ptr(®ion->mmaps[i].mem, - memory_region_owner(region->mem), - name, region->mmaps[i].size, - region->mmaps[i].mmap); + memory_region_init_ram_device_ptr(®ion->mmaps[i].mem, + memory_region_owner(region->mem), + name, region->mmaps[i].size, + region->mmaps[i].mmap); g_free(name); - memory_region_set_skip_dump(®ion->mmaps[i].mem); memory_region_add_subregion(region->mem, region->mmaps[i].offset, ®ion->mmaps[i].mem); diff --git a/hw/vfio/spapr.c b/hw/vfio/spapr.c index 7443d34..4409bcc 100644 --- a/hw/vfio/spapr.c +++ b/hw/vfio/spapr.c @@ -25,7 +25,7 @@ static bool vfio_prereg_listener_skipped_section(MemoryRegionSection *section) } return !memory_region_is_ram(section->mr) || - memory_region_is_skip_dump(section->mr); + memory_region_is_ram_device(section->mr); } static void *vfio_prereg_gpa_to_vaddr(MemoryRegionSection *section, hwaddr gpa) |