From: Avi Kivity <avi@redhat.com>
To: Stefan Weil <sw@weilnetz.de>
Cc: qemu-devel@nongnu.org
Subject: Re: [Qemu-devel] [PATCH] memory: Fix assertion for flash devices
Date: Sun, 08 Jan 2012 13:07:16 +0200 [thread overview]
Message-ID: <4F0978E4.5080004@redhat.com> (raw)
In-Reply-To: <1325934826-23870-1-git-send-email-sw@weilnetz.de>
On 01/07/2012 01:13 PM, Stefan Weil wrote:
> There is a regression since commit c5705a7728b4a6bc9e4f2d35911adbaf28042b25
> or some other recent change.
>
> System emulation with a flash device raises an assertion in function
> qemu_ram_set_idstr because no new_block is found at the requested addr.
>
> The address of the memory region (mr->ram_addr) is set by
> memory_region_init_rom_device:
>
> mr->ram_addr = qemu_ram_alloc(size, mr);
> mr->ram_addr |= cpu_register_io_memory(mr);
>
> The 2nd line adds a small offset to mr->ram_addr, and this offset
> makes ram_set_idstr fail with an assertion.
>
> Masking mr->ram_addr with the target's page mask removes the small
> offset and makes flash devices work again.
>
>
> diff --git a/memory.c b/memory.c
> index 394cbab..1b2f9e8 100644
> --- a/memory.c
> +++ b/memory.c
> @@ -1386,7 +1386,7 @@ void memory_region_set_alias_offset(MemoryRegion *mr, target_phys_addr_t offset)
>
> ram_addr_t memory_region_get_ram_addr(MemoryRegion *mr)
> {
> - return mr->ram_addr;
> + return mr->ram_addr & TARGET_PAGE_MASK;
> }
>
This makes get_ram_addr() lie about the return value - it's no longer
the ram_addr. Doesn't matter much since it's temporary, but I patched
vmstate_register_ram() instead.
--
error compiling committee.c: too many arguments to function
prev parent reply other threads:[~2012-01-08 11:07 UTC|newest]
Thread overview: 3+ messages / expand[flat|nested] mbox.gz Atom feed top
2012-01-07 11:13 [Qemu-devel] [PATCH] memory: Fix assertion for flash devices Stefan Weil
2012-01-07 20:29 ` Aurelien Jarno
2012-01-08 11:07 ` Avi Kivity [this message]
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=4F0978E4.5080004@redhat.com \
--to=avi@redhat.com \
--cc=qemu-devel@nongnu.org \
--cc=sw@weilnetz.de \
/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.