mirror of
https://github.com/genodelabs/genode.git
synced 2025-03-14 16:26:30 +00:00
On x86_64, calling Hw_vcpu::run() will cause a startup exit that is signaled to the VMM. The VMM will subsequently call with_state(). When Hw_vcpu::run() is called from the Hw_vcpu constructor, this can lead to a situation where the VMM calls with_state() on a vCPU that isn't fully constructed yet. The VMM library API requires that the vCPU starts up in order to emit a startup exit at construction. Call Hw_vcpu::run() from the Vm_connection::Vcpu constructor instead of calling run() from the Hw_vcpu constructor to avoid running a native vCPU that isn't fully constructed yet. Fixes #5442