From: "Edgar E. Iglesias" <edgar.iglesias@axis.com>
To: "Kirill A. Shutemov" <kirill@shutemov.name>
Cc: Jan Kiszka <jan.kiszka@web.de>, qemu-devel@nongnu.org
Subject: Re: [Qemu-devel] [PATCH] linux-user: Fix h2g usage in page_find_alloc
Date: Sat, 6 Dec 2008 21:08:33 +0100 [thread overview]
Message-ID: <20081206200833.GD1167@edgar.se.axis.com> (raw)
In-Reply-To: <1228303789-25653-6-git-send-email-kirill@shutemov.name>
On Wed, Dec 03, 2008 at 01:29:41PM +0200, Kirill A. Shutemov wrote:
> From: Jan Kiszka <jan.kiszka@web.de>
>
> Paul's comment on my first approach to fix the h2g usage in
> page_find_alloc finally open my eyes about what the code is actually
> supposed to do:
>
> With the help of h2g_valid we can no cleanly check if a freshly allocate
> page (for host usage) is guest-reachable and, in case it is, mark it
> reserved in the guest's address range.
>
> Signed-off-by: Jan Kiszka <jan.kiszka@web.de>
> Signed-off-by: Kirill A. Shutemov <kirill@shutemov.name>
Acked-by: Edgar E. Iglesias <edgar.iglesias@gmail.com>
> ---
> exec.c | 5 ++---
> 1 files changed, 2 insertions(+), 3 deletions(-)
>
> diff --git a/exec.c b/exec.c
> index 58a0cff..105812f 100644
> --- a/exec.c
> +++ b/exec.c
> @@ -305,14 +305,13 @@ static inline PageDesc *page_find_alloc(target_ulong index)
> if (!p) {
> /* allocate if not found */
> #if defined(CONFIG_USER_ONLY)
> - unsigned long addr;
> size_t len = sizeof(PageDesc) * L2_SIZE;
> /* Don't use qemu_malloc because it may recurse. */
> p = mmap(0, len, PROT_READ | PROT_WRITE,
> MAP_PRIVATE | MAP_ANONYMOUS, -1, 0);
> *lp = p;
> - addr = h2g(p);
> - if (addr == (target_ulong)addr) {
> + if (h2g_valid(p)) {
> + unsigned long addr = h2g(p);
> page_set_flags(addr & TARGET_PAGE_MASK,
> TARGET_PAGE_ALIGN(addr + len),
> PAGE_RESERVED);
> --
> 1.6.0.2.GIT
>
>
next prev parent reply other threads:[~2008-12-06 20:08 UTC|newest]
Thread overview: 46+ messages / expand[flat|nested] mbox.gz Atom feed top
2008-12-03 11:29 [Qemu-devel] [PATCH] Introduce --enable-binfmt-misc configure option Kirill A. Shutemov
2008-12-03 11:29 ` [Qemu-devel] [PATCH] Fix fstatat64()/newfstatat() syscall implementation Kirill A. Shutemov
2008-12-03 11:29 ` [Qemu-devel] [PATCH] Move abi_* typedefs into qemu-types.h Kirill A. Shutemov
2008-12-03 11:29 ` [Qemu-devel] [PATCH] linux-user: Safety belt for h2g Kirill A. Shutemov
2008-12-03 11:29 ` [Qemu-devel] [PATCH] linux-user: Introduce h2g_valid Kirill A. Shutemov
2008-12-03 11:29 ` [Qemu-devel] [PATCH] linux-user: Fix h2g usage in page_find_alloc Kirill A. Shutemov
2008-12-03 11:29 ` [Qemu-devel] [PATCH] Rewrite mmap_find_vma() to work fine on 64-bit hosts with 32-bit targets Kirill A. Shutemov
2008-12-03 11:29 ` [Qemu-devel] [PATCH] mmap: add check if requested memory area fits target address space Kirill A. Shutemov
2008-12-03 11:29 ` [Qemu-devel] [PATCH] mremap(): handle MREMAP_FIXED and MREMAP_MAYMOVE correctly Kirill A. Shutemov
2008-12-03 11:29 ` [Qemu-devel] [PATCH] Fix and cleanup IPCOP_sem* ipc calls handling Kirill A. Shutemov
2008-12-03 11:29 ` [Qemu-devel] [PATCH] Implement sem* syscalls Kirill A. Shutemov
2008-12-03 11:29 ` [Qemu-devel] [PATCH] Fix and cleanup IPCOP_shm* ipc calls handling Kirill A. Shutemov
2008-12-03 11:29 ` [Qemu-devel] [PATCH] Implement shm* syscalls Kirill A. Shutemov
2008-12-03 11:29 ` [Qemu-devel] [PATCH] shmat(): use mmap_find_vma to find free memory area Kirill A. Shutemov
2008-12-06 19:51 ` [Qemu-devel] [PATCH] mremap(): handle MREMAP_FIXED and MREMAP_MAYMOVE correctly Edgar E. Iglesias
2008-12-06 20:03 ` Kirill A. Shutemov
2008-12-08 18:17 ` Aurelien Jarno
2008-12-06 19:46 ` [Qemu-devel] [PATCH] mmap: add check if requested memory area fits target address space Edgar E. Iglesias
2008-12-06 20:00 ` Kirill A. Shutemov
2008-12-08 18:16 ` Aurelien Jarno
2008-12-03 12:34 ` [Qemu-devel] [PATCH] Rewrite mmap_find_vma() to work fine on 64-bit hosts with 32-bit targets Paul Brook
2008-12-03 12:43 ` Christoph Egger
2008-12-03 12:48 ` Paul Brook
2008-12-03 12:50 ` Kirill A. Shutemov
2008-12-08 20:48 ` Kirill A. Shutemov
2008-12-08 20:54 ` Martin Mohring
2008-12-08 20:59 ` Martin Mohring
2008-12-08 21:57 ` Kirill A. Shutemov
2008-12-08 21:02 ` Martin Mohring
2008-12-08 22:14 ` [Qemu-devel] qemu and glibc version Kirill A. Shutemov
2008-12-09 12:25 ` [Qemu-devel] [PATCH] Rewrite mmap_find_vma() to work fine on 64-bit hosts with 32-bit targets Robert Reif
2008-12-09 13:26 ` Kirill A. Shutemov
2008-12-08 23:42 ` Paul Brook
2008-12-09 6:20 ` Kirill A. Shutemov
2008-12-06 20:08 ` Edgar E. Iglesias [this message]
2008-12-06 20:13 ` [Qemu-devel] [PATCH] linux-user: Fix h2g usage in page_find_alloc Kirill A. Shutemov
2008-12-08 18:16 ` Aurelien Jarno
2008-12-08 18:15 ` [Qemu-devel] [PATCH] linux-user: Introduce h2g_valid Aurelien Jarno
2008-12-06 20:04 ` [Qemu-devel] [PATCH] linux-user: Safety belt for h2g Edgar E. Iglesias
2008-12-08 18:15 ` Aurelien Jarno
2008-12-08 19:25 ` Andreas Färber
2008-12-09 7:34 ` Jan Kiszka
2008-12-07 21:56 ` [Qemu-devel] [PATCH] Move abi_* typedefs into qemu-types.h Aurelien Jarno
2008-12-08 6:09 ` Kirill A. Shutemov
2008-12-08 18:13 ` Aurelien Jarno
2009-01-12 14:18 ` [Qemu-devel] [PATCH] Introduce --enable-binfmt-misc configure option Riku Voipio
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=20081206200833.GD1167@edgar.se.axis.com \
--to=edgar.iglesias@axis.com \
--cc=jan.kiszka@web.de \
--cc=kirill@shutemov.name \
--cc=qemu-devel@nongnu.org \
/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 an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.