exec: Drop incorrect & dead S390 code in qemu_ram_remap()
Old S390 KVM wants guest RAM mapped in a peculiar way. Commit6b02494
implemented that. When qemu_ram_remap() got added in commitcd19cfa
, its code carefully mimicked the allocation code: peculiar way if defined(TARGET_S390X) && defined(CONFIG_KVM), else normal way. For new S390 KVM, we actually want the normal way. Commitfdec991
changed qemu_ram_alloc_from_ptr() accordingly, but forgot to update qemu_ram_remap(). If qemu_ram_alloc_from_ptr() maps RAM the normal way, but qemu_ram_remap() remaps it the peculiar way, remapping changes protection and flags, which it shouldn't. Fortunately, this can't happen, as we never remap on S390. Replace the incorrect code with an assertion. Thanks to Christian Borntraeger for help with assessing the bug's (non-)impact. Acked-by: Christian Borntraeger <borntraeger@de.ibm.com> Signed-off-by: Markus Armbruster <armbru@redhat.com> Acked-by: Laszlo Ersek <lersek@redhat.com> Acked-by: Stefano Stabellini <stefano.stabellini@eu.citrix.com> Message-id: 1375276272-15988-6-git-send-email-armbru@redhat.com Signed-off-by: Anthony Liguori <anthony@codemonkey.ws>
This commit is contained in:
parent
91138037cb
commit
2eb9fbaab5
13
exec.c
13
exec.c
@ -1254,15 +1254,16 @@ void qemu_ram_remap(ram_addr_t addr, ram_addr_t length)
|
||||
area = mmap(vaddr, length, PROT_READ | PROT_WRITE,
|
||||
flags, block->fd, offset);
|
||||
} else {
|
||||
#if defined(TARGET_S390X) && defined(CONFIG_KVM)
|
||||
flags |= MAP_SHARED | MAP_ANONYMOUS;
|
||||
area = mmap(vaddr, length, PROT_EXEC|PROT_READ|PROT_WRITE,
|
||||
flags, -1, 0);
|
||||
#else
|
||||
/*
|
||||
* Remap needs to match alloc. Accelerators that
|
||||
* set phys_mem_alloc never remap. If they did,
|
||||
* we'd need a remap hook here.
|
||||
*/
|
||||
assert(phys_mem_alloc == qemu_anon_ram_alloc);
|
||||
|
||||
flags |= MAP_PRIVATE | MAP_ANONYMOUS;
|
||||
area = mmap(vaddr, length, PROT_READ | PROT_WRITE,
|
||||
flags, -1, 0);
|
||||
#endif
|
||||
}
|
||||
if (area != vaddr) {
|
||||
fprintf(stderr, "Could not remap addr: "
|
||||
|
Loading…
Reference in New Issue
Block a user