mirror of
https://github.com/Motorhead1991/qemu.git
synced 2026-01-01 12:10:52 -07:00
ISM device firmware stores unique state information that can
can cause a wholesale unmap of the associated IOMMU (e.g. when
we get a termination signal for QEMU) to trigger firmware errors
because firmware believes we are attempting to invalidate entries
that are still in-use by the guest OS (when in fact that guest is
in the process of being terminated or rebooted).
To alleviate this, register both a shutdown notifier (for unexpected
termination cases e.g. virsh destroy) as well as a reset callback
(for cases like guest OS reboot). For each of these scenarios, trigger
PCI device reset; this is enough to indicate to firmware that the IOMMU
is no longer in-use by the guest OS, making it safe to invalidate any
associated IOMMU entries.
Fixes:
|
||
|---|---|---|
| .. | ||
| 3270-ccw.h | ||
| adapter.h | ||
| ap-bridge.h | ||
| ap-device.h | ||
| css-bridge.h | ||
| css.h | ||
| ebcdic.h | ||
| event-facility.h | ||
| ioinst.h | ||
| pv.h | ||
| s390-ccw.h | ||
| s390-pci-bus.h | ||
| s390-pci-clp.h | ||
| s390-pci-inst.h | ||
| s390-pci-kvm.h | ||
| s390-pci-vfio.h | ||
| s390-virtio-ccw.h | ||
| s390_flic.h | ||
| sclp.h | ||
| storage-attributes.h | ||
| storage-keys.h | ||
| tod.h | ||
| vfio-ccw.h | ||