summaryrefslogtreecommitdiffstats
path: root/arch/s390/kvm/kvm-s390.c
diff options
context:
space:
mode:
authorChristian Borntraeger2016-02-03 11:12:34 +0100
committerChristian Borntraeger2016-02-10 13:12:57 +0100
commit1763f8d09d522b3ac998229dcf038476e88b78fc (patch)
tree6831f58a13676ad637a34f4d815993251989a886 /arch/s390/kvm/kvm-s390.c
parentKVM: s390: do not block CPU on dirty logging (diff)
downloadkernel-qcow2-linux-1763f8d09d522b3ac998229dcf038476e88b78fc.tar.gz
kernel-qcow2-linux-1763f8d09d522b3ac998229dcf038476e88b78fc.tar.xz
kernel-qcow2-linux-1763f8d09d522b3ac998229dcf038476e88b78fc.zip
KVM: s390: bail out early on fatal signal in dirty logging
A KVM_GET_DIRTY_LOG ioctl might take a long time. This can result in fatal signals seemingly being ignored. Lets bail out during the dirty bit sync, if a fatal signal is pending. Signed-off-by: Christian Borntraeger <borntraeger@de.ibm.com> Reviewed-by: David Hildenbrand <dahi@linux.vnet.ibm.com> Signed-off-by: Christian Borntraeger <borntraeger@de.ibm.com>
Diffstat (limited to 'arch/s390/kvm/kvm-s390.c')
-rw-r--r--arch/s390/kvm/kvm-s390.c2
1 files changed, 2 insertions, 0 deletions
diff --git a/arch/s390/kvm/kvm-s390.c b/arch/s390/kvm/kvm-s390.c
index bb99ca28eb66..28bd5ea1b08f 100644
--- a/arch/s390/kvm/kvm-s390.c
+++ b/arch/s390/kvm/kvm-s390.c
@@ -281,6 +281,8 @@ static void kvm_s390_sync_dirty_log(struct kvm *kvm,
if (gmap_test_and_clear_dirty(address, gmap))
mark_page_dirty(kvm, cur_gfn);
+ if (fatal_signal_pending(current))
+ return;
cond_resched();
}
}