diff options
| author | Christian Borntraeger <borntraeger@linux.ibm.com> | 2026-08-05 13:04:50 +0200 |
|---|---|---|
| committer | Claudio Imbrenda <imbrenda@linux.ibm.com> | 2026-08-11 10:45:27 +0200 |
| commit | b239410c7653ff6781d4cf1d63cfc52a1bb71788 (patch) | |
| tree | 54ef3d0452e52b6bd06d711a63d2ccc44c602b7e /scripts | |
| parent | 4e2c7f7cbc27418f9a290399b986c1b85ff93b90 (diff) | |
| download | linux-b239410c7653ff6781d4cf1d63cfc52a1bb71788.tar.gz linux-b239410c7653ff6781d4cf1d63cfc52a1bb71788.zip | |
KVM: s390: Zero initialize irq in reinject_machine_check
kvm_s390_reinject_machine_check() fills cr14, mcic, ext_damage_code and
failing_storage_address of the on-stack struct kvm_s390_irq, but struct
kvm_s390_mchk_info also has a pad word and a 16 byte fixed_logout array.
struct mcck_volatile_info carries no logout data, so there is nothing to
copy there and both stay whatever was on the stack.
__inject_mchk() then memcpy()s fixed_logout into the vcpu local
interrupt state unconditionally. This will reach the guest during
deliver and userspace during migration.
Reflecting zeroes is the correct behaviour here, as KVM has no logout
data for a reinjected machine check.
This needs a host machine check while the cpu is in SIE so not trivial
to trigger.
Fixes: 4d62fcc0b692 ("KVM: s390: Inject machine check into the guest")
Cc: stable@vger.kernel.org
Signed-off-by: Christian Borntraeger <borntraeger@linux.ibm.com>
Reviewed-by: Matthew Rosato <mjrosato@linux.ibm.com>
Reviewed-by: Claudio Imbrenda <imbrenda@linux.ibm.com>
Signed-off-by: Claudio Imbrenda <imbrenda@linux.ibm.com>
Message-ID: <20260805110455.7200-4-borntraeger@linux.ibm.com>
Diffstat (limited to 'scripts')
0 files changed, 0 insertions, 0 deletions
