On Sat, Jan 07, 2012 at 12:13:46PM +0100, 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.
> 
> Cc: Avi Kivity <a...@redhat.com>
> Signed-off-by: Stefan Weil <s...@weilnetz.de>
> ---
>  memory.c |    2 +-
>  1 files changed, 1 insertions(+), 1 deletions(-)
> 

I can't confirm the patch is correct, but at least I can confirm it fix
the breakage.

Tested-by: Aurelien Jarno <aurel...@aurel32.net>

-- 
Aurelien Jarno                          GPG: 1024D/F1BCDB73
aurel...@aurel32.net                 http://www.aurel32.net

Reply via email to