diff options
author | David Hildenbrand <dahi@linux.vnet.ibm.com> | 2015-09-30 13:48:45 +0200 |
---|---|---|
committer | Cornelia Huck <cornelia.huck@de.ibm.com> | 2015-10-21 12:21:30 +0200 |
commit | 4ab729207fe1464b19c6bec609cd545ab717174a (patch) | |
tree | f2345f04f0128f83a18c50438fd74a847b438acd /target-s390x/misc_helper.c | |
parent | db3b2566e0fb45e2901b6f9b842d91db6963915d (diff) | |
download | qemu-4ab729207fe1464b19c6bec609cd545ab717174a.zip |
s390x: reset crypto only on clear reset and QEMU reset
Initializing VM crypto in initial cpu reset has multiple problems
1. We call the exact same function #VCPU times, although one time is enough
2. On SIGP initial cpu reset, we exchange the wrapping key while
other VCPUs are running. Bad!
3. It is simply wrong. According to the Pop, a reset happens only during a
clear reset.
So, we have to reset the keys
- on modified clear reset
- on load clear (QEMU reset - via machine reset)
- on qemu start (via machine reset)
Reviewed-by: Christian Borntraeger <borntraeger@de.ibm.com>
Signed-off-by: David Hildenbrand <dahi@linux.vnet.ibm.com>
Signed-off-by: Cornelia Huck <cornelia.huck@de.ibm.com>
Diffstat (limited to 'target-s390x/misc_helper.c')
-rw-r--r-- | target-s390x/misc_helper.c | 1 |
1 files changed, 1 insertions, 0 deletions
diff --git a/target-s390x/misc_helper.c b/target-s390x/misc_helper.c index ddf2498a35..a692c44d82 100644 --- a/target-s390x/misc_helper.c +++ b/target-s390x/misc_helper.c @@ -129,6 +129,7 @@ static int modified_clear_reset(S390CPU *cpu) } cmma_reset(cpu); subsystem_reset(); + s390_crypto_reset(); scc->load_normal(CPU(cpu)); cpu_synchronize_all_post_reset(); resume_all_vcpus(); |