virtio-pci: compat page aligned ATS
commitd83f46d189a26fa32434139954d264326f199a45
authorJason Wang <jasowang@redhat.com>
Tue, 6 Apr 2021 04:03:30 +0000 (6 12:03 +0800)
committerMichael S. Tsirkin <mst@redhat.com>
Tue, 6 Apr 2021 11:11:36 +0000 (6 07:11 -0400)
tree1292bb94a1a503ab34af1b50356f01f41751c862
parent90a66f48471975fd46f1caab1574679f0a0ef74b
virtio-pci: compat page aligned ATS

Commit 4c70875372b8 ("pci: advertise a page aligned ATS") advertises
the page aligned via ATS capability (RO) to unbrek recent Linux IOMMU
drivers since 5.2. But it forgot the compat the capability which
breaks the migration from old machine type:

(qemu) qemu-kvm: get_pci_config_device: Bad config data: i=0x104 read:
0 device: 20 cmask: ff wmask: 0 w1cmask:0

This patch introduces a new parameter "x-ats-page-aligned" for
virtio-pci device and turns it on for machine type which is newer than
5.1.

Cc: Michael S. Tsirkin <mst@redhat.com>
Cc: Peter Xu <peterx@redhat.com>
Cc: Dr. David Alan Gilbert <dgilbert@redhat.com>
Cc: qemu-stable@nongnu.org
Fixes: 4c70875372b8 ("pci: advertise a page aligned ATS")
Signed-off-by: Jason Wang <jasowang@redhat.com>
Message-Id: <20210406040330.11306-1-jasowang@redhat.com>
Reviewed-by: Michael S. Tsirkin <mst@redhat.com>
Signed-off-by: Michael S. Tsirkin <mst@redhat.com>
hw/core/machine.c
hw/pci/pcie.c
hw/virtio/virtio-pci.c
hw/virtio/virtio-pci.h
include/hw/pci/pcie.h