On 02/26/2015 12:13 AM, Jordan Hargrave wrote:
Referencing this old thread: https://lists.nongnu.org/archive/html/qemu-devel/2014-07/msg00606.html I've run into an issue recently with testing q35 DMAR/intel iommu with ahci driver. My ahci driver writes the upper-32 bits (PORT_FIS_ADDR_HI) first then the lower 32-bits (PORT_FIS_ADDR). The contents of PORT_FIS_ADDR therefore are stale when the PORT_FIS_ADDR_HI write calls map_page(). DMAR translation fails at this point as the old stale address (from SEABIOS initialization) is not in the DMAR page table.
Hi: I posted a fix, but do you mind elaborating on what the failure actually looked like?
Did QEMU abort, did the guest crash, etc? What exact behavior did you observe?
Do you have a command line to share with us? --js