Skip to content
  • Jan H. Schönherr's avatar
    KVM: Let KVM_SET_SIGNAL_MASK work as advertised · 20b7035c
    Jan H. Schönherr authored
    
    
    KVM API says for the signal mask you set via KVM_SET_SIGNAL_MASK, that
    "any unblocked signal received [...] will cause KVM_RUN to return with
    -EINTR" and that "the signal will only be delivered if not blocked by
    the original signal mask".
    
    This, however, is only true, when the calling task has a signal handler
    registered for a signal. If not, signal evaluation is short-circuited for
    SIG_IGN and SIG_DFL, and the signal is either ignored without KVM_RUN
    returning or the whole process is terminated.
    
    Make KVM_SET_SIGNAL_MASK behave as advertised by utilizing logic similar
    to that in do_sigtimedwait() to avoid short-circuiting of signals.
    
    Signed-off-by: default avatarJan H. Schönherr <jschoenh@amazon.de>
    Signed-off-by: default avatarPaolo Bonzini <pbonzini@redhat.com>
    20b7035c