On 23/06/2015 11:45, Fam Zheng wrote: >>> > > break; >>> > > case KVM_EXIT_SYSTEM_EVENT: >>> > > switch (run->system_event.type) { >>> > > case KVM_SYSTEM_EVENT_SHUTDOWN: >>> > > * qemu_system_shutdown_request(); >>> > > ret = EXCP_INTERRUPT; >>> > > break; >>> > > case KVM_SYSTEM_EVENT_RESET: >>> > > * qemu_system_reset_request(); >> > >> > These two are thread-safe. > But above you add lock/unlock around the qemu_system_reset_request() under > KVM_EXIT_SHUTDOWN. What's different?
That's unnecessary. Also, just below this switch there's another call to kvm_arch_handle_exit that should be wrapped by lock/unlock (it works anyway because no one handles KVM_EXIT_SYSTEM_EVENT in kvm_arch_handle_exit, but it's not clean). Paolo