efa06d90e0
- Patch queue updated from git://github.com/openSUSE/qemu.git opensuse-3.1 * Patches added: 0058-Revert-target-i386-kvm-add-VMX-migr.patch 0059-memory-Fix-the-memory-region-type-a.patch 0060-target-i386-sev-Do-not-pin-the-ram-.patch - Revert upstream patch which declares x86 vmx feature a migration blocker. Given the proliferation of using vm's with host features passed through and the general knowledge that nested virtualization has many usage caveats, but still gets put in use in restricted scenarios, this patch did more harm than good, I feel. So despite this relaxation, please consider yourself warned that nested virtualization is not yet a supportable feature. (bsc#1121604) 0058-Revert-target-i386-kvm-add-VMX-migr.patch - Fix SEV VM device assignment (bsc#1123205) 0059-memory-Fix-the-memory-region-type-a.patch 0060-target-i386-sev-Do-not-pin-the-ram-.patch - Patch queue updated from git://github.com/openSUSE/qemu.git opensuse-3.1 - Revert upstream patch which declares x86 vmx feature a migration blocker. Given the proliferation of using vm's with host features passed through and the general knowledge that nested virtualization has many usage caveats, but still gets put in use in restricted scenarios, this patch did more harm than good, I feel. So despite this relaxation, please consider yourself warned that nested virtualization is not yet a supportable feature. (bsc#1121604) 0058-Revert-target-i386-kvm-add-VMX-migr.patch - Fix SEV VM device assignment (bsc#1123205) 0059-memory-Fix-the-memory-region-type-a.patch 0060-target-i386-sev-Do-not-pin-the-ram-.patch - Patch queue updated from git://github.com/openSUSE/qemu.git opensuse-3.1 OBS-URL: https://build.opensuse.org/request/show/676606 OBS-URL: https://build.opensuse.org/package/show/Virtualization/qemu?expand=0&rev=455
45 lines
1.7 KiB
Diff
45 lines
1.7 KiB
Diff
From: "Singh, Brijesh" <brijesh.singh@amd.com>
|
|
Date: Fri, 15 Feb 2019 14:22:21 -0700
|
|
Subject: memory: Fix the memory region type assignment order
|
|
|
|
Currently, a callback registered through the RAMBlock notifier
|
|
is not able to get the memory region type (i.e callback is not
|
|
able to use memory_region_is_ram_device function). This is
|
|
because mr->ram assignment happens _after_ the memory is allocated
|
|
whereas the callback is executed during allocation.
|
|
|
|
Fixes: https://bugzilla.redhat.com/show_bug.cgi?id=1667249
|
|
Suggested-by: Alex Williamson <alex.williamson@redhat.com>
|
|
Cc: Paolo Bonzini <pbonzini@redhat.com>
|
|
Reviewed-by: Alex Williamson <alex.williamson@redhat.com>
|
|
Signed-off-by: Brijesh Singh <brijesh.singh@amd.com>
|
|
[BSC#1123205]
|
|
Signed-off-by: Bruce Rogers <brogers@suse.com>
|
|
---
|
|
memory.c | 9 ++++++++-
|
|
1 file changed, 8 insertions(+), 1 deletion(-)
|
|
|
|
diff --git a/memory.c b/memory.c
|
|
index d14c6dec1d..d1b68fdae8 100644
|
|
--- a/memory.c
|
|
+++ b/memory.c
|
|
@@ -1605,10 +1605,17 @@ void memory_region_init_ram_device_ptr(MemoryRegion *mr,
|
|
uint64_t size,
|
|
void *ptr)
|
|
{
|
|
- memory_region_init_ram_ptr(mr, owner, name, size, ptr);
|
|
+ memory_region_init(mr, owner, name, size);
|
|
+ mr->ram = true;
|
|
+ mr->terminates = true;
|
|
mr->ram_device = true;
|
|
mr->ops = &ram_device_mem_ops;
|
|
mr->opaque = mr;
|
|
+ mr->destructor = memory_region_destructor_ram;
|
|
+ mr->dirty_log_mask = tcg_enabled() ? (1 << DIRTY_MEMORY_CODE) : 0;
|
|
+ /* qemu_ram_alloc_from_ptr cannot fail with ptr != NULL. */
|
|
+ assert(ptr != NULL);
|
|
+ mr->ram_block = qemu_ram_alloc_from_ptr(size, ptr, mr, &error_fatal);
|
|
}
|
|
|
|
void memory_region_init_alias(MemoryRegion *mr,
|