On Thu, Jul 25, 2013 at 02:43:53PM +0200, Gerd Hoffmann wrote: > On 07/25/13 14:28, Michael S. Tsirkin wrote: > > On Thu, Jul 25, 2013 at 02:14:40PM +0200, Gerd Hoffmann wrote: > >> On 07/24/13 18:01, Michael S. Tsirkin wrote: > >>> QTAILQ_FOREACH(rom, &roms, next) { > >>> + if (rom->mr) { > >>> + continue; > >>> + } > >>> if (rom->fw_file) { > >>> continue; > >>> } > >>> if (rom->data == NULL) { > >>> continue; > >>> } > >>> - cpu_physical_memory_write_rom(rom->addr, rom->data, > >>> rom->datasize); > >>> + if (rom->mr) { > >>> + void *host = memory_region_get_ram_ptr(rom->mr); > >>> + memcpy(host, rom->data, rom->datasize); > >> > >> I think this code never ever runs ... > >> > >> cheers, > >> Gerd > >> > > > > > > Could you be clearer please? This chunk is in rom_reset, > > I think it runs on reset. > > You have the "if (rom->mr)" twice in the loop. The first does continue > so the second will never ever evaluate to true, thereby making the > memcpy dead code. > > cheers, > Gerd
Hmm that's a bugt I think. Thanks!