intel-iommu: ignore leaf SNP bit in scalable mode
commit0192d6677c383d812fb23f572fda4e449e89d3f1
authorJason Wang <jasowang@redhat.com>
Mon, 29 Nov 2021 03:36:18 +0000 (29 11:36 +0800)
committerMichael S. Tsirkin <mst@redhat.com>
Mon, 29 Nov 2021 13:49:36 +0000 (29 08:49 -0500)
tree4fe4da241733b4b6b5e4f4eaa98650cbd8327c96
parentd3f1f940ebe43403feb1d12e4b5b9236aba50cb9
intel-iommu: ignore leaf SNP bit in scalable mode

When booting with scalable mode, I hit this error:

qemu-system-x86_64: vtd_iova_to_slpte: detected splte reserve non-zero iova=0xfffff002, level=0x1slpte=0x102681803)
qemu-system-x86_64: vtd_iommu_translate: detected translation failure (dev=01:00:00, iova=0xfffff002)
qemu-system-x86_64: New fault is not recorded due to compression of faults

This is because the SNP bit is set for second level page table since
Linux kernel commit 6c00612d0cba1 ("iommu/vt-d: Report right snoop
capability when using FL for IOVA") even if SC is not supported by the
hardware.

To unbreak the guest, ignore the leaf SNP bit for scalable mode
first. In the future we may consider to add SC support.

Signed-off-by: Jason Wang <jasowang@redhat.com>
Message-Id: <20211129033618.3857-1-jasowang@redhat.com>
Reviewed-by: Michael S. Tsirkin <mst@redhat.com>
Signed-off-by: Michael S. Tsirkin <mst@redhat.com>
Reviewed-by: Peter Xu <peterx@redhat.com>
hw/i386/intel_iommu.c
hw/i386/intel_iommu_internal.h