On Tue, Jun 02, 2015 at 05:23:55PM +0800, Zhu Guihua wrote: > Since icc bus will be droped and apic reset should be after bus > reset in x86, this patch moves reset handler for main_system_bus > from vl.c to sysbus.c
So, you are changing reset ordering for all machines because of a x86-specific requirement? Other machines can have different ordering requirements and may break if you unconditionally change the reset order for all machines. Like I said on v6: if x86 has specific CPU reset ordering requirements, we should be able to ensure the expected ordering in x86-specific code (in pc.c?), not hardcode reset ordering for all machines. Maybe we can change the qemu_register_reset() API to accept an explicit ordering parameter, so ordering requirements are visibly encoded in the qemu_register_reset() calls instead of depending on non-obvious initialization code ordering. While we don't have a better API, we can probably ensure the x86 reset ordering without affecting the other machines by calling qemu_register_reset() for the CPUs in a machine_init_done notifier registered by PC. -- Eduardo