]> xenbits.xensource.com Git - people/andrewcoop/xen.git/commit
VTd/dmar: Tweak how the DMAR table is clobbered
authorAndrew Cooper <andrew.cooper3@citrix.com>
Fri, 10 Apr 2015 15:26:18 +0000 (11:26 -0400)
committerKonrad Rzeszutek Wilk <konrad.wilk@oracle.com>
Fri, 10 Apr 2015 15:36:24 +0000 (11:36 -0400)
commit123c7793797502b222300eb710cd3873dcca41ee
tree0963c61e7b5f6bb97aaf2d790db100aad3b50774
parent614013d9475f8ccc7c807c5e22062c80069e0ee1
VTd/dmar: Tweak how the DMAR table is clobbered

Intead of clobbering DMAR -> XMAR and back, clobber to RMAD instead. This
means that changing the signature does not alter the checksum, which allows
the clobbering/unclobbering to be peformed atomically and idempotently, which
is an advantage on the kexec path which can reenter acpi_dmar_reinstate().

This DMAR clobbering was introduced by
83904107a33c9badc34ecdd1f8ca0f9271e5e370 which claims that the dom0 VT-d
driver was capable of playing with the IOMMU(s) while Xen was also using
them. An alternative approach might be to leave the DMAR table alone
and sprinkle some iomem_deny_access() around to forcibly prevent dom0
from playing but this is simpler.

Signed-off-by: Andrew Cooper <andrew.cooper3@citrix>
CC: Yang Zhang <yang.z.zhang@intel>
Acked-by: Kevin Tian <kevin.tian@intel>
xen/drivers/passthrough/vtd/dmar.c