KVM: s390: Inject machine check into the guest
If the exit flag of SIE indicates that a machine check has happened during guest's running and needs to be injected, inject it to the guest accordingly. But some machine checks, e.g. Channel Report Pending (CRW), refer to host conditions only (the guest's channel devices are not managed by the kernel directly) and are therefore not injected into the guest. External Damage (ED) is also not reinjected into the guest because ETR conditions are gone in Linux and STP conditions are not enabled in the guest, and ED contains only these 8 ETR and STP conditions. In general, instruction-processing damage, system recovery, storage error, service-processor damage and channel subsystem damage will be reinjected into the guest, and the remain (System damage, timing-facility damage, warning, ED and CRW) will be handled on the host. Signed-off-by: QingFeng Hao <haoqf@linux.vnet.ibm.com> Acked-by: Christian Borntraeger <borntraeger@de.ibm.com> Signed-off-by: Christian Borntraeger <borntraeger@de.ibm.com>
This commit is contained in:

committed by
Christian Borntraeger

parent
aec3b2c5f9
commit
4d62fcc0b6
@@ -26,6 +26,12 @@
|
||||
#define MCCK_CODE_PSW_MWP_VALID _BITUL(63 - 20)
|
||||
#define MCCK_CODE_PSW_IA_VALID _BITUL(63 - 23)
|
||||
|
||||
#define MCCK_CR14_CR_PENDING_SUB_MASK (1 << 28)
|
||||
#define MCCK_CR14_RECOVERY_SUB_MASK (1 << 27)
|
||||
#define MCCK_CR14_DEGRAD_SUB_MASK (1 << 26)
|
||||
#define MCCK_CR14_EXT_DAMAGE_SUB_MASK (1 << 25)
|
||||
#define MCCK_CR14_WARN_SUB_MASK (1 << 24)
|
||||
|
||||
#ifndef __ASSEMBLY__
|
||||
|
||||
union mci {
|
||||
|
Reference in New Issue
Block a user