From: Markus Armbruster <armbru@redhat.com>
To: qemu-devel@nongnu.org
Cc: peter.maydell@linaro.org, stefano.stabellini@eu.citrix.com,
mtosatti@redhat.com, agraf@suse.de, borntraeger@de.ibm.com,
pbonzini@redhat.com, afaerber@suse.de, rth@twiddle.net
Subject: [Qemu-devel] [PATCH 5/8] exec: Drop incorrect & dead S390 code in qemu_ram_remap()
Date: Wed, 19 Jun 2013 13:44:21 +0200 [thread overview]
Message-ID: <1371642264-17704-6-git-send-email-armbru@redhat.com> (raw)
In-Reply-To: <1371642264-17704-1-git-send-email-armbru@redhat.com>
Old S390 KVM wants guest RAM mapped in a peculiar way. Commit 6b02494
implemented that.
When qemu_ram_remap() got added in commit cd19cfa, 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. Commit fdec991
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.
Signed-off-by: Markus Armbruster <armbru@redhat.com>
---
exec.c | 13 +++++++------
1 file changed, 7 insertions(+), 6 deletions(-)
diff --git a/exec.c b/exec.c
index c45eb33..a0f18fe 100644
--- a/exec.c
+++ b/exec.c
@@ -1229,15 +1229,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);
+
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: "
--
1.7.11.7
next prev parent reply other threads:[~2013-06-19 11:44 UTC|newest]
Thread overview: 13+ messages / expand[flat|nested] mbox.gz Atom feed top
2013-06-19 11:44 [Qemu-devel] [PATCH 0/8] ] Guest memory allocation fixes & cleanup Markus Armbruster
2013-06-19 11:44 ` [Qemu-devel] [PATCH 1/8] exec: Fix Xen RAM allocation with unusual options Markus Armbruster
2013-06-19 11:44 ` [Qemu-devel] [PATCH 2/8] exec: Clean up fall back when -mem-path allocation fails Markus Armbruster
2013-06-19 11:44 ` [Qemu-devel] [PATCH 3/8] exec: Reduce ifdeffery around -mem-path Markus Armbruster
2013-06-19 11:44 ` [Qemu-devel] [PATCH 4/8] exec: Simplify the guest physical memory allocation hook Markus Armbruster
2013-06-19 12:20 ` Christian Borntraeger
2013-06-19 11:44 ` Markus Armbruster [this message]
2013-06-19 12:26 ` [Qemu-devel] [PATCH 5/8] exec: Drop incorrect & dead S390 code in qemu_ram_remap() Christian Borntraeger
2013-06-19 12:56 ` Paolo Bonzini
2013-06-19 13:22 ` Markus Armbruster
2013-06-19 11:44 ` [Qemu-devel] [PATCH 6/8] exec: Clean up unnecessary S390 ifdeffery Markus Armbruster
2013-06-19 11:44 ` [Qemu-devel] [PATCH 7/8] exec: Don't abort when we can't allocate guest memory Markus Armbruster
2013-06-19 11:44 ` [Qemu-devel] [PATCH 8/8] pc_sysfw: Fix ISA BIOS init for ridiculously big flash Markus Armbruster
Reply instructions:
You may reply publicly to this message via plain-text email
using any one of the following methods:
* Save the following mbox file, import it into your mail client,
and reply-to-all from there: mbox
Avoid top-posting and favor interleaved quoting:
https://en.wikipedia.org/wiki/Posting_style#Interleaved_style
* Reply using the --to, --cc, and --in-reply-to
switches of git-send-email(1):
git send-email \
--in-reply-to=1371642264-17704-6-git-send-email-armbru@redhat.com \
--to=armbru@redhat.com \
--cc=afaerber@suse.de \
--cc=agraf@suse.de \
--cc=borntraeger@de.ibm.com \
--cc=mtosatti@redhat.com \
--cc=pbonzini@redhat.com \
--cc=peter.maydell@linaro.org \
--cc=qemu-devel@nongnu.org \
--cc=rth@twiddle.net \
--cc=stefano.stabellini@eu.citrix.com \
/path/to/YOUR_REPLY
https://kernel.org/pub/software/scm/git/docs/git-send-email.html
* If your mail client supports setting the In-Reply-To header
via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line
before the message body.
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for NNTP newsgroup(s).