diff --git a/0063-hw-arm-virt-mark-the-PCIe-host-cont.patch b/0063-hw-arm-virt-mark-the-PCIe-host-cont.patch new file mode 100644 index 00000000..93ef719a --- /dev/null +++ b/0063-hw-arm-virt-mark-the-PCIe-host-cont.patch @@ -0,0 +1,38 @@ +From b38222880dde75c9e489f86af0b12a9e9a63b412 Mon Sep 17 00:00:00 2001 +From: Ard Biesheuvel +Date: Mon, 4 Jul 2016 13:06:36 +0100 +Subject: [PATCH] hw/arm/virt: mark the PCIe host controller as DMA coherent in + the DT + +Since QEMU performs cacheable accesses to guest memory when doing DMA +as part of the implementation of emulated PCI devices, guest drivers +should use cacheable accesses as well when running under KVM. Since this +essentially means that emulated PCI devices are DMA coherent, set the +'dma-coherent' DT property on the PCIe host controller DT node. + +This brings the DT description into line with the ACPI description, +which already marks the PCI bridge as cache coherent (see commit +bc64b96c984abf). + +Signed-off-by: Ard Biesheuvel +Message-id: 1467134090-5099-1-git-send-email-ard.biesheuvel@linaro.org +Reviewed-by: Peter Maydell +Signed-off-by: Peter Maydell +(cherry picked from commit 5d636e21c44ecf982a22a7bc4ca89186079ac283) +Signed-off-by: Alexander Graf +--- + hw/arm/virt.c | 1 + + 1 file changed, 1 insertion(+) + +diff --git a/hw/arm/virt.c b/hw/arm/virt.c +index 56d35c7..9d015d5 100644 +--- a/hw/arm/virt.c ++++ b/hw/arm/virt.c +@@ -950,6 +950,7 @@ static void create_pcie(const VirtBoardInfo *vbi, qemu_irq *pic, + qemu_fdt_setprop_cell(vbi->fdt, nodename, "#size-cells", 2); + qemu_fdt_setprop_cells(vbi->fdt, nodename, "bus-range", 0, + nr_pcie_buses - 1); ++ qemu_fdt_setprop(vbi->fdt, nodename, "dma-coherent", NULL, 0); + + if (vbi->v2m_phandle) { + qemu_fdt_setprop_cells(vbi->fdt, nodename, "msi-parent", diff --git a/qemu-linux-user.changes b/qemu-linux-user.changes index b894f8f6..8f31238a 100644 --- a/qemu-linux-user.changes +++ b/qemu-linux-user.changes @@ -1,3 +1,10 @@ +------------------------------------------------------------------- +Thu Jul 28 10:53:18 UTC 2016 - agraf@suse.com + +- Patch queue updated from git://github.com/openSUSE/qemu.git opensuse-2.6 +* Patches added: + 0063-hw-arm-virt-mark-the-PCIe-host-cont.patch + ------------------------------------------------------------------- Thu Jul 14 19:38:39 UTC 2016 - brogers@suse.com diff --git a/qemu-linux-user.spec b/qemu-linux-user.spec index 3db5cfe3..b2015bed 100644 --- a/qemu-linux-user.spec +++ b/qemu-linux-user.spec @@ -87,6 +87,7 @@ Patch0059: 0059-vnc-add-configurable-keyboard-delay.patch Patch0060: 0060-scsi-megasas-initialise-local-confi.patch Patch0061: 0061-configure-add-echo_version-helper.patch Patch0062: 0062-configure-support-vte-2.91.patch +Patch0063: 0063-hw-arm-virt-mark-the-PCIe-host-cont.patch # Please do not add patches manually here, run update_git.sh. # this is to make lint happy Source300: qemu-rpmlintrc @@ -202,6 +203,7 @@ run cross-architecture builds. %patch0060 -p1 %patch0061 -p1 %patch0062 -p1 +%patch0063 -p1 %build ./configure --prefix=%_prefix --sysconfdir=%_sysconfdir \ diff --git a/qemu-testsuite.changes b/qemu-testsuite.changes index d7f46d0d..11789a63 100644 --- a/qemu-testsuite.changes +++ b/qemu-testsuite.changes @@ -1,3 +1,11 @@ +------------------------------------------------------------------- +Thu Jul 28 10:53:14 UTC 2016 - agraf@suse.com + +- Fix ARM PCIe DMA coherency bug (bsc#991034) +- Patch queue updated from git://github.com/openSUSE/qemu.git opensuse-2.6 +* Patches added: + 0063-hw-arm-virt-mark-the-PCIe-host-cont.patch + ------------------------------------------------------------------- Tue Jul 19 20:57:17 UTC 2016 - afaerber@suse.de diff --git a/qemu-testsuite.spec b/qemu-testsuite.spec index 8541e0ba..7352f331 100644 --- a/qemu-testsuite.spec +++ b/qemu-testsuite.spec @@ -147,6 +147,7 @@ Patch0059: 0059-vnc-add-configurable-keyboard-delay.patch Patch0060: 0060-scsi-megasas-initialise-local-confi.patch Patch0061: 0061-configure-add-echo_version-helper.patch Patch0062: 0062-configure-support-vte-2.91.patch +Patch0063: 0063-hw-arm-virt-mark-the-PCIe-host-cont.patch # Please do not add QEMU patches manually here. # Run update_git.sh to regenerate this queue. @@ -789,6 +790,7 @@ This package provides a service file for starting and stopping KSM. %patch0060 -p1 %patch0061 -p1 %patch0062 -p1 +%patch0063 -p1 %if %{build_x86_fw_from_source} pushd roms/seabios diff --git a/qemu.changes b/qemu.changes index d7f46d0d..11789a63 100644 --- a/qemu.changes +++ b/qemu.changes @@ -1,3 +1,11 @@ +------------------------------------------------------------------- +Thu Jul 28 10:53:14 UTC 2016 - agraf@suse.com + +- Fix ARM PCIe DMA coherency bug (bsc#991034) +- Patch queue updated from git://github.com/openSUSE/qemu.git opensuse-2.6 +* Patches added: + 0063-hw-arm-virt-mark-the-PCIe-host-cont.patch + ------------------------------------------------------------------- Tue Jul 19 20:57:17 UTC 2016 - afaerber@suse.de diff --git a/qemu.spec b/qemu.spec index 67533a3c..d2549952 100644 --- a/qemu.spec +++ b/qemu.spec @@ -147,6 +147,7 @@ Patch0059: 0059-vnc-add-configurable-keyboard-delay.patch Patch0060: 0060-scsi-megasas-initialise-local-confi.patch Patch0061: 0061-configure-add-echo_version-helper.patch Patch0062: 0062-configure-support-vte-2.91.patch +Patch0063: 0063-hw-arm-virt-mark-the-PCIe-host-cont.patch # Please do not add QEMU patches manually here. # Run update_git.sh to regenerate this queue. @@ -789,6 +790,7 @@ This package provides a service file for starting and stopping KSM. %patch0060 -p1 %patch0061 -p1 %patch0062 -p1 +%patch0063 -p1 %if %{build_x86_fw_from_source} pushd roms/seabios