mirror of
https://github.com/torvalds/linux.git
synced 2026-06-05 21:15:53 +02:00
Timers that fire between guest hlt and vcpu_block's add_wait_queue() are
ignored, possibly resulting in hangs.
Also make sure that atomic_inc and waitqueue_active tests happen in the
specified order, otherwise the following race is open:
CPU0 CPU1
if (waitqueue_active(wq))
add_wait_queue()
if (!atomic_read(pit_timer->pending))
schedule()
atomic_inc(pit_timer->pending)
Signed-off-by: Marcelo Tosatti <mtosatti@redhat.com>
Signed-off-by: Avi Kivity <avi@qumranet.com>
|
||
|---|---|---|
| .. | ||
| ioapic.c | ||
| ioapic.h | ||
| iodev.h | ||
| kvm_main.c | ||
| kvm_trace.c | ||