diff options
author | Jens Freimann <jfrei@linux.vnet.ibm.com> | 2015-06-22 13:20:12 +0200 |
---|---|---|
committer | Paolo Bonzini <pbonzini@redhat.com> | 2015-06-23 17:02:39 +0200 |
commit | f2ae45edbca7ba5324eef01719ede0151dc5cead (patch) | |
tree | bd123ebddaa33ed2a30ce601d725fc49e4369f9d /arch/s390 | |
parent | 6912ac326d3aab9c0774ebec99f60a73fd04a520 (diff) | |
download | linux-stable-f2ae45edbca7ba5324eef01719ede0151dc5cead.tar.gz linux-stable-f2ae45edbca7ba5324eef01719ede0151dc5cead.tar.bz2 linux-stable-f2ae45edbca7ba5324eef01719ede0151dc5cead.zip |
KVM: s390: clear floating interrupt bitmap and parameters
commit 6d3da24141 ("KVM: s390: deliver floating interrupts in order
of priority") introduced a regression for the reset handling.
We don't clear the bitmap of pending floating interrupts
and interrupt parameters. This could result in stale interrupts
even after a reset. Let's fix this by clearing the pending bitmap
and the parameters for service and machine check interrupts.
Cc: stable@vger.kernel.org # 4.1
Signed-off-by: Jens Freimann <jfrei@linux.vnet.ibm.com>
Signed-off-by: Christian Borntraeger <borntraeger@de.ibm.com>
Signed-off-by: Paolo Bonzini <pbonzini@redhat.com>
Diffstat (limited to 'arch/s390')
-rw-r--r-- | arch/s390/kvm/interrupt.c | 3 |
1 files changed, 3 insertions, 0 deletions
diff --git a/arch/s390/kvm/interrupt.c b/arch/s390/kvm/interrupt.c index 322ef9cfdc80..480b9750e15e 100644 --- a/arch/s390/kvm/interrupt.c +++ b/arch/s390/kvm/interrupt.c @@ -1621,6 +1621,9 @@ void kvm_s390_clear_float_irqs(struct kvm *kvm) int i; spin_lock(&fi->lock); + fi->pending_irqs = 0; + memset(&fi->srv_signal, 0, sizeof(fi->srv_signal)); + memset(&fi->mchk, 0, sizeof(fi->mchk)); for (i = 0; i < FIRQ_LIST_COUNT; i++) clear_irq_list(&fi->lists[i]); for (i = 0; i < FIRQ_MAX_COUNT; i++) |