xen: fixup RAM memory region initialization
authorIgor Mammedov <imammedo@redhat.com>
Thu, 2 Apr 2020 14:54:18 +0000 (10:54 -0400)
committerPaolo Bonzini <pbonzini@redhat.com>
Thu, 2 Apr 2020 18:56:29 +0000 (14:56 -0400)
commit0dc0389fa5455bb264866701892ed06bc3eb06e4
tree1ff8a252bfe42cd48fb2f9b661adbbd6d0bcc786
parent7f5d9b206d1e86425faa5b84b551068bf044b823
xen: fixup RAM memory region initialization

Since bd457782b3b0 ("x86/pc: use memdev for RAM") Xen
machine fails to start with:
   qemu-system-i386: xen: failed to populate ram at 0

The reason is that xen_ram_alloc() which is called by
memory_region_init_ram(), compares memory region with
statically allocated 'global' ram_memory memory region
that it uses for RAM, and does nothing in case it matches.

While it's possible feed machine->ram to xen_ram_alloc()
in the same manner to keep that hack working, I'd prefer
not to keep that circular dependency and try to untangle that.

However it doesn't look trivial to fix, so as temporary
fixup opt out Xen machine from memdev based RAM allocation,
and let xen_ram_alloc() do its trick for now.

Reported-by: Anthony PERARD <anthony.perard@citrix.com>
Signed-off-by: Igor Mammedov <imammedo@redhat.com>
Message-Id: <20200402145418.5139-1-imammedo@redhat.com>
Signed-off-by: Paolo Bonzini <pbonzini@redhat.com>
hw/xen/xen-common.c