summary refs log tree commit diff stats
path: root/hw/pci/pci.c
diff options
context:
space:
mode:
authorLadi Prosek <lprosek@redhat.com>2017-06-19 09:31:16 +0200
committerMichael S. Tsirkin <mst@redhat.com>2017-07-03 22:29:48 +0300
commit8991c460be5a0811194fd4d2b49ba7146a23526b (patch)
tree4981ef1ad33d0e16d9dc42c1966086f94e3e3c58 /hw/pci/pci.c
parentba94971354376876b7a4c243831bd4032045eacc (diff)
downloadfocaccia-qemu-8991c460be5a0811194fd4d2b49ba7146a23526b.tar.gz
focaccia-qemu-8991c460be5a0811194fd4d2b49ba7146a23526b.zip
intel_iommu: relax iq tail check on VTD_GCMD_QIE enable
The VT-d spec (section 6.5.2) prescribes software to zero the
Invalidation Queue Tail Register before enabling the VTD_GCMD_QIE
Global Command Register bit. Windows Server 2012 R2 and possibly
other older Windows versions violate the protocol and set a
non-zero queue tail first, which in effect makes them crash early
on boot with -device intel-iommu,intremap=on.

This commit relaxes the check and instead of failing to enable
VTD_GCMD_QIE with vtd_err_qi_enable, it behaves as if the tail
register was set just after enabling VTD_GCMD_QIE
(see vtd_handle_iqt_write).

Signed-off-by: Ladi Prosek <lprosek@redhat.com>
Reviewed-by: Peter Xu <peterx@redhat.com>
Reviewed-by: Michael S. Tsirkin <mst@redhat.com>
Signed-off-by: Michael S. Tsirkin <mst@redhat.com>
Diffstat (limited to 'hw/pci/pci.c')
0 files changed, 0 insertions, 0 deletions