@@ -2240,7 +2240,8 @@ void kvm_sigset_activate(struct kvm_vcpu *vcpu)
* ->real_blocked don't care as long ->real_blocked is always a subset
* of ->blocked.
*/
- sigprocmask(SIG_SETMASK, &vcpu->sigset, ¤t->real_blocked);
+ current->real_blocked = current->blocked;
+ __set_current_blocked(&vcpu->sigset);
}
void kvm_sigset_deactivate(struct kvm_vcpu *vcpu)
@@ -2248,7 +2249,7 @@ void kvm_sigset_deactivate(struct kvm_vcpu *vcpu)
if (!vcpu->sigset_active)
return;
- sigprocmask(SIG_SETMASK, ¤t->real_blocked, NULL);
+ __set_current_blocked(¤t->real_blocked);
sigemptyset(¤t->real_blocked);
}
Instead of jumping through hoops call __set_current_blocked directly. As well as directly manipulating real_blocked. This is in preparation for modifying the code to always keep real_blocked in sync with blocked except in the rare cases when the kernel needs to override it. Signed-off-by: "Eric W. Biederman" <ebiederm@xmission.com> --- virt/kvm/kvm_main.c | 5 +++-- 1 file changed, 3 insertions(+), 2 deletions(-)