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