KVM: s390: make exit_sie_sync more robust
authorChristian Borntraeger <borntraeger@de.ibm.com>
Thu, 9 Apr 2015 11:49:04 +0000 (13:49 +0200)
committerChristian Borntraeger <borntraeger@de.ibm.com>
Fri, 8 May 2015 13:51:14 +0000 (15:51 +0200)
commit8e23654687c97df1c0e4b1def245a05001eaf640
tree6b03aee4f322771861214c72788be2c4fe48e118
parent53df84f8de312586e1c05a8f496f614ca814eeff
KVM: s390: make exit_sie_sync more robust

exit_sie_sync is used to kick CPUs out of SIE and prevent reentering at
any point in time. This is used to reload the prefix pages and to
set the IBS stuff in a way that guarantees that after this function
returns we are no longer in SIE. All current users trigger KVM requests.

The request must be set before we block the CPUs to avoid races. Let's
make this implicit by adding the request into a new function
kvm_s390_sync_requests that replaces exit_sie_sync and split out
s390_vcpu_block and s390_vcpu_unblock, that can be used to keep
CPUs out of SIE independent of requests.

Signed-off-by: Christian Borntraeger <borntraeger@de.ibm.com>
Reviewed-by: David Hildenbrand <dahi@linux.vnet.ibm.com>
Reviewed-by: Cornelia Huck <cornelia.huck@de.ibm.com>
arch/s390/include/asm/kvm_host.h
arch/s390/kernel/entry.S
arch/s390/kvm/kvm-s390.c
arch/s390/kvm/kvm-s390.h