aboutsummaryrefslogtreecommitdiffstats
path: root/arch/s390/kernel/asm-offsets.c
diff options
context:
space:
mode:
authorChristian Borntraeger <borntraeger@de.ibm.com>2013-05-17 08:41:35 -0400
committerGleb Natapov <gleb@redhat.com>2013-05-21 04:55:23 -0400
commit49b99e1e0dedbd6cc93b2d2776b60fb7151ff3d7 (patch)
tree204052379d35e6459207571b3e2bb1d460e2cef2 /arch/s390/kernel/asm-offsets.c
parent95d38fd0bcf1996082f5f8762e6f1c849755e0c6 (diff)
s390/kvm: Provide a way to prevent reentering SIE
Lets provide functions to prevent KVM from reentering SIE and to kick cpus out of SIE. We cannot use the common kvm_vcpu_kick code, since we need to kick out guests in places that hold architecture specific locks (e.g. pgste lock) which might be necessary on the other cpus - so no waiting possible. So lets provide a bit in a private field of the sie control block that acts as a gate keeper, after we claimed we are in SIE. Please note that we do not reuse prog0c, since we want to access that bit without atomic ops. Signed-off-by: Christian Borntraeger <borntraeger@de.ibm.com> Acked-by: Martin Schwidefsky <schwidefsky@de.ibm.com> Signed-off-by: Gleb Natapov <gleb@redhat.com>
Diffstat (limited to 'arch/s390/kernel/asm-offsets.c')
-rw-r--r--arch/s390/kernel/asm-offsets.c1
1 files changed, 1 insertions, 0 deletions
diff --git a/arch/s390/kernel/asm-offsets.c b/arch/s390/kernel/asm-offsets.c
index 6456bbe1fbb1..78db6338695d 100644
--- a/arch/s390/kernel/asm-offsets.c
+++ b/arch/s390/kernel/asm-offsets.c
@@ -163,6 +163,7 @@ int main(void)
163 DEFINE(__THREAD_trap_tdb, offsetof(struct task_struct, thread.trap_tdb)); 163 DEFINE(__THREAD_trap_tdb, offsetof(struct task_struct, thread.trap_tdb));
164 DEFINE(__GMAP_ASCE, offsetof(struct gmap, asce)); 164 DEFINE(__GMAP_ASCE, offsetof(struct gmap, asce));
165 DEFINE(__SIE_PROG0C, offsetof(struct kvm_s390_sie_block, prog0c)); 165 DEFINE(__SIE_PROG0C, offsetof(struct kvm_s390_sie_block, prog0c));
166 DEFINE(__SIE_PROG20, offsetof(struct kvm_s390_sie_block, prog20));
166#endif /* CONFIG_32BIT */ 167#endif /* CONFIG_32BIT */
167 return 0; 168 return 0;
168} 169}