• QingFeng Hao's avatar
    KVM: s390: Backup the guest's machine check info · da72ca4d
    QingFeng Hao authored
    When a machine check happens in the guest, related mcck info (mcic,
    external damage code, ...) is stored in the vcpu's lowcore on the host.
    Then the machine check handler's low-level part is executed, followed
    by the high-level part.
    
    If the high-level part's execution is interrupted by a new machine check
    happening on the same vcpu on the host, the mcck info in the lowcore is
    overwritten with the new machine check's data.
    
    If the high-level part's execution is scheduled to a different cpu,
    the mcck info in the lowcore is uncertain.
    
    Therefore, for both cases, the further reinjection to the guest will use
    the wrong data.
    Let's backup the mcck info in the lowcore to the sie page
    for further reinjection, so that the right data will be used.
    
    Add new member into struct sie_page to store related machine check's
    info of mcic, failing storage address and external damage code.
    Signed-off-by: default avatarQingFeng Hao <haoqf@linux.vnet.ibm.com>
    Acked-by: default avatarChristian Borntraeger <borntraeger@de.ibm.com>
    Signed-off-by: default avatarChristian Borntraeger <borntraeger@de.ibm.com>
    da72ca4d
nmi.c 12 KB