• Paul Mackerras's avatar
    KVM: PPC: Book3S HV: Improve real-mode handling of external interrupts · 4619ac88
    Paul Mackerras authored
    This streamlines our handling of external interrupts that come in
    while we're in the guest.  First, when waking up a hardware thread
    that was napping, we split off the "napping due to H_CEDE" case
    earlier, and use the code that handles an external interrupt (0x500)
    in the guest to handle that too.  Secondly, the code that handles
    those external interrupts now checks if any other thread is exiting
    to the host before bouncing an external interrupt to the guest, and
    also checks that there is actually an external interrupt pending for
    the guest before setting the LPCR MER bit (mediated external request).
    
    This also makes sure that we clear the "ceded" flag when we handle a
    wakeup from cede in real mode, and fixes a potential infinite loop
    in kvmppc_run_vcpu() which can occur if we ever end up with the ceded
    flag set but MSR[EE] off.
    Signed-off-by: default avatarPaul Mackerras <paulus@samba.org>
    Signed-off-by: default avatarAlexander Graf <agraf@suse.de>
    4619ac88
book3s_hv_rmhandlers.S 43.5 KB