• Rusty Russell's avatar
    lguest: fix race in halt code · abd41f03
    Rusty Russell authored
    When the Guest does the LHCALL_HALT hypercall, we go to sleep, expecting
    that a timer or the Waker will wake_up_process() us.
    
    But we do it in a stupid way, leaving a classic missing wakeup race.
    
    So split maybe_do_interrupt() into interrupt_pending() and
    try_deliver_interrupt(), and check maybe_do_interrupt() and the
    "break_out" flag before calling schedule.
    Signed-off-by: default avatarRusty Russell <rusty@rustcorp.com.au>
    abd41f03
interrupts_and_traps.c 19.3 KB