vmd(8): fix vm pause deadlock.
authordv <dv@openbsd.org>
Tue, 26 Sep 2023 01:23:02 +0000 (01:23 +0000)
committerdv <dv@openbsd.org>
Tue, 26 Sep 2023 01:23:02 +0000 (01:23 +0000)
commit71ab85de86c9965af0a2d6132e10736e2dd4e37f
tree9f8e397e5a33ab233f8c937bef811465e9068123
parent88ef38baf6cc60975ef2af24204774e91793f1c0
vmd(8): fix vm pause deadlock.

When vcpu threads pause, they are holding the run mutex lock. If
the event thread is asked to assert an irq on the pic and interrupts
are pending, it will try to take the run mutex lock on the vcpu.
This deadlocks.

Release the lock in the vcpu thread before waiting on the pause
condition variable.

ok mlarkin@
usr.sbin/vmd/vm.c